Dear Steemians,
I would like to present you my favourite learning approach when it comes to getting familiar with a new programming language/framework or just experimenting with a creative idea.
Every student needs feedback
One of the first limitations an unexperienced programmer has, is time. Patience has a limit, every person has a different goals but at the end of the day, everyone of us expects an outcome after investing a certain amount of effort.
At our typical educational institutions (high scool, uni..) we are taught to learn in a deductive manner, that means; starting from an hypothesis or statement and examining the possibilities to reach a specific goal.
Problem is, in programming for the most part this is too slow. Why? because in order to hold a hypothesis/theory, you first need a very solid background on the topic.
Using an inductive method instead, one is able to start working and actually learning in a much faster pace while having a lesser dull experience. Why?
- You actually start coding right away from the start
- You dont need to learn so much theory
Real Example
Now seriously...
You take a working example which is similar to your end goal. One good idea is to search in public repositories such as github for code.
Once you got one, examine the basic parts and functionalities. By using the inductive approach, we want to change code and experiment the outcomes in order to stablish basic premises.
Typically, you want to use somekind of real-time/on-the-fly compilation. As an example, if you are learning some web technology like javascript, you want to use a local testing server that can read and compile your changes in real time.
By experimenting with someone else code, we are able to identify basic premises that will become our toolset backbone.
Keep modifiying and exploring and before you realise, you will have a great understanding on the subject while actually coding and having fun !
Good post. I think the discussion around how one thinks about learning programming is very important. I've noticed everyone approaches it differently and each methodology can have pitfalls.
For example as a self taught programmer I used to just have an idea and throw myself in without reading any other similar code or taking the time to learn some of the fundamental concepts required to write code in that domain. The result of this was that I would spend much too long creating hacky solutions and end up with very messy results, while also failing to master my tools.
It's tempting to jump into a project straight away especially because programmers chronically underestimate the time it will take. However, i think it pays huge dividends to spend some time evaluating current solutions and the methodologies used. Then you can make better estimate and decide if you really want to commit. Once your ready to commit then take the time to get to know your tools and how you want to approach the problem.
Your idea of finding a similar code base to your interests and learning how to manipulate it is brilliant.
Understanding patterns is very important.
Appreciate your comment.
I agree with you about the chronic understimation of projects.. Eventually I have learnt to accept the uncertainity.
Reading your bio, I can see you like "real people", yet you are spamming "real people"!
How many more spam accounts do you have?
@arooj
@ahmmi
@ahmmi20
spam ≠ love
If you want upvotes you might consider to upvote others too... at least?!?!?!