Monday, September 16, 2013

Learning Programming: 10 Misconceptions That Are Not True

There are plenty of misconceptions and myths surrounding the art of programming. Many view it as a job only for the very gifted; the process, methodical, the rewards, glorious. A career path only for geeks, or for the mathematically inclined, and a job not tolerant of mistakes.

programming

In this post we are going to debug, explore and fix these misconceptions about being a programmer, and maybe serve as a source of relief for those who are wondering if programming is the career path for them. If you have any other myths to add to the list, name them in the comments section below.

1. I Have To Master Mathematics To Learn Programming Languages

People confuse of the relationship between mathematics and programming because they want a flat out answer of ‘Yes’ or ‘No’. In reality, the answer is more towards "it depends, but mostly not". As a programmer, we spend most of our time writing code, not Math formulas, and your knowledge in Math is not directly proportional to your programming skill.

Don’t get me wrong though, we still need basic algebra, but it’s basic, and well, it’s just algebra. Besides, there are libraries and plugins, which you can apply directly into your code to help you solve mathematical and algorithmic problems.

math doom

However, if you are trying to create stuff that require advanced mathematical calculations or physics or computer graphics, you certainly need to master some Mathematics (but not to worry, there are tons of physics and graphics solutions in the industry already).

2. I Must Be A Genius (With An IQ OF 160)

It does not matter if your IQ is 160 or 90, programming is not related to biological factors, but your interest. If you have taken tests to determine your IQ score, know that it does little to identify what you like to do or how far you can get based purely on a test score.

I’m not a MENSA member but I do have 4 years of programming experience, and I can program simply because I don’t mind failing repeatedly, and learning from my mistakes, which is basically how programmers learn anyways.

Now to put a threshold on this, anyone who knows how to communicate, can learn programming. Because deep in its core, programming is a "language" with its own grammar & vocabulary, and its existence is purely to help you communicate with machine to complete a certain purpose or action, just like what we do to every human. It’s really that straightforward.

3. I Have To Go To University To Learn To Code

They say in order to max up your coding kung-fu, you need a true master to guide your path. And at the pinnacle of that hierarchy is the label of Professor (that’s about as high as you can go, in your study of anything). But these, days, and thanks to the Internet, you can learn how to program from kind and enthusiastic programmers, with zero involvement from university lecturers.

codecademy

Pick a beginner course in interactive learning websites like Codecademy, or read tutorial sites like Nettuts+ that have clear explanations in both text and video formats. Have a problem and want direct answer? Stack Overflow and Stackexchange are your best friends. Google searches can help you make the right connections (and let’s ont forget we have plenty of development resources for you here as well).

Look, we’re not saying that universities can’t teach you anything. A professor or lecturer can certainly speed up your understanding of theories and concepts such as Object Oriented Programming, and there are few critical advantages you need to take into account too.

But regardless the path you choose, it’s best for you to master your self-learning ability because unlike most industries, programming is always evolving at a very fast pace, and only you can determine whether you can keep up.

4. I Must Be An Adult To Learn Programming Languages

Parents, please don’t use your child’s age as a deterrent for them to learn programming languages, and that’s not just my personal opinion. At Code.org, there is a petition to demand the insertion of programming as a compulsory school subject, so kids can learn to think analytically.

Nonetheless, there is a difference in the learning model between kids and adults. It’s best for kids to learn in a more visual way, since their visual perception is more developed. For this, Scratch and Alice are the perfect fit for kids to program visually (it’s way way better than ancient programming books).

And if they prefer an interactive environment (because who doesn’t?), the code community like Khan Academy is the place to be. Parents can also help out by staying in the loop with their kids’ progress, and guiding them with explanation, tips and resources, plus the parental support that promotes active learning.

5. I Must Learn Only The Best Language

‘The Best’ Programming language? That’s a little misleading, because the best language for you to learn is the one that fits your current purpose, either for work or study. In other words, there is no best programming language, it depends on what you want to do with it.

python

There are great programming languages for beginners, though. Python is a good starter due to its simplicity, readability and flexibility. Java is easy to learn too and best of all, it has extensive documentation and a die-hard community, or you can dive intoC# like I did. Afterward, it’s up to you to decide your tools of choice based on the language’s speed, exclusive features, compatibility, maintainability, etc.

6. It Only Takes Weeks To Learn And Master A Programming Language

Don’t believe this tagline. It’s sad to see most aspiring youths trying a programming language for a short time only to find out they cannot create a MMORPG within weeks. Then, they pull the plug, label themselves as ‘not talented’ then give up on the dream of becoming a game programmer.

In truth, you can spend weeks to learn programming, but it takes years to master programming. Like drawing, programming requires an interest and patience, and most of the things you create initially may be of little use. Yet if you keep moving forward, you just have to take it a step at a time. To become a good programmer, you should feel very good every time you fail, because that’s the only way you progress.

7. I Should Memorize All Syntaxes And Avoid Help

The psychology is that, if you program without external guidance, you will memorize everything and become a true pro that can build anything from scratch. But the truth is, you don’t have to worry about memorizing syntaxes, as you’ll be writing the same code for thousands of times before you can flip the table and create a framework yourself.

aptana studio

Google, IDE and Frameworks are not created out of boredom â€" they are specifically designed to help you pick up programming faster. The best practice is to use IDE with syntax recommendation and consult the Google crystal ball, whenever you run into trouble.

Adopting frameworks help you understand what that programming language does, and what limits it can be pushed to. Then when you have progressed enough, experiment with specific programming features. Explore, blow something up (figuratively) and have fun messing up.

8. I Just Can’t Write That Much Code

I’m one of those people who were scared when I first viewed the source of a web page, because you can bet that 4000 lines of code can be overwhelming. However, while HTML is not a programming language, its content pretty much reflects what every code file contains in general. If you pay attention, you will find that they are just piles of code consisting repetitive statements, methods and loops.

That’s it; programmers mostly use the same stuff you learn in beginner and intermediate course to do both simple and complicated solutions. And once you get used to it, you will feel that 10,000 lines of code is child’s play. It can get addictive very quickly!

9. I Am Woman. I Can’t Code.

At the risk at threading into dangerous waters here, let me straight up say I am a fan of women programmers. The girls in my class owned us in both math and science subjects and my programming career has further substantiated this belief. Women have and always been on top in influential programmer lists, here’s a brief one for you, just to drive the point home:

  1. Ada Lovelace was the first programmer in the world.
  2. Grace Murray Hopper developed the first compiler for programming language.
  3. Adele Goldstine help created the world’s first electronic digital computer.
  4. Jean E. Sammet developed FORMAC programming language, a variation of FORTRAN.
  5. Marissa Mayer was one of the earliest programmers in Google.

marissa mayer
(Image Source: SFGate)

The impact of women in the field of programming is evident, but like how most men aren’t attracted to the perfume industry, the lower ratio of women to men programmers in the field maybe due to other factors such as social and economic pressures as well as different perspectives and interests in life etc.

10. I Can Only Start Making Money Once I have Mastered Programming

Take a glimpse at most job vacancies for programmers, and you can see the demand of several years of experience with tons of other programming languages for the position. But reality is not that harsh. You can always get a programming job equivalent to your programming experience, but you can’t just sit there and wait.

If direct application does not work, an internship is a healthy way to gain work experience and bid for a chance of being a permanent hire, but above all, your work portfolio with impressive showcases of your abilities is where interviewers want to check out. Reputation helps, so start open source project today.

Freelance is also a great place to start because most clients here are far more forgiving (just beware of clients from hell). Either way, there’s always a room for discussion, and everyone has got to start somewhere, but you must do something.

Welcome To The World of Programming!

All in all, programming is just like any other industry, where hard work and determination are your assets for success. So with all the doubts cleared, take your first step and start your first programming lesson today.

No comments:

Post a Comment