by Zeroeh (Edited; Grammar corrected)
When people ask for easy
ways how to learn coding or programming, there are often the same of responses:
Codecademy or similar sites where you can learn coding “really fast”. The main problem
is that those sites often fail to teach the theoretical concepts or tie it up nicely
with the examples.
Programming isn't just
syntax and compilers, it's a whole logical thought process that shares the same
process of building a home. You must have a great foundation of what computing
is, how pieces work and how to really think abstractly.
Programming is great
because there is never the "best" solution to a problem. Programming
teaches you how to think differently. It teaches you to think abstractly. How
does this work and why does it work this way? Your total thought process
becomes a puzzle that you are constantly trying to solve.
To successfully learn
programming you need a lot of intrinsic motivation. Programming is one of the
most stressful and aggravating things you can ever do. Some people try it once
and think: “What the fuck! I cannot do this!”, then give up. Others will excel at
the theories behind computer science but during implementation time, they
become overwhelmed and let their code "run-away" from them. They lose
the complete picture of what they are trying to create and solve. Programming teaches
you patience.
Learning to code through
Codecademy or the like will most cerntainly benefit you. But let me show the
dangers of learning it this way in an example:
You need to create a round-robin
scheduling algorithm for a tournament? Your first step is: What is that? You
look it up and say “Okay, cool, easy to do”. At this point, less experienced
programmers will Google first ideas on how to implement it, then try to
implement it. Normally they will not end up getting the problem on the first
try, but that's okay! They try to see what the error or unexpected output is.
Yeah, you can figure out where you're missing that “}” or “;” but what happens
when your program gives you a “5” as result instead of the “3” you were looking
for?
Most unskilled
programmers become frustrated, start doubting themselves and search Google for
more examples until they just try to copy and paste code into their program.
This is what I mentioned above with “code run away from you.” They now have no
clue what is what, where is this method? This is where most programmers give
up, they can't figure it out.
A skilled and experienced
programmer knows how to let their mind run free, they don't let problems and
code run-away from them. They understand the complete picture and know what that
FIFO, Queue, Stack, Binary Tree or Linked List is, how they are supposed to
work and how they are implemented. How arrays work, what datatypes are best and
which looping structures are better. This is something that comes with
experience, not one day of googling and understanding it.
Everyone can become a
"programmer". Syntax and algorithms will come with time, but patience
and your thirst for success must be something you stride for.
No comments:
Post a Comment