3 Replies Latest reply: Aug 6, 2012 5:12 PM by stevejobsfan0123
Pippi10 Level 1 Level 1 (0 points)

What are the "must learn" in programming? I can think of Object Oriented Programming. What are other ones that can benefit a beginning level software programmer? 

MacBook Pro (13-inch Early 2011), Mac OS X (10.7.4)
  • Jongware Level 2 Level 2 (265 points)



    Read a couple of posts by beginners (like you?) on this forum. All of them want to just "make an iPad app and earn $$$". They expect to be told "the" expert trick to be able to program, and assume they can learn by assimilation of screen radiance, just like Charlemagne thought he could learn to read by keeping his books under his pillow while sleeping.




    Being able to phrase a question clearly and then understand the answer takes some skills. Do not use "ur" or other l33tsp33k.




    I just finished reading a 1236 page manual, almost literally cover to cover. As it didn't explain the topic I was exploring in sufficient detail, I went off to the almighty Web and looked up ISO and CCITT documents until I got it. (I think I'm almost there. I got a splitting headache over it, so it won't be tonight or even tomorrow, but I'm getting there, in my own time.)


    Languages. (Well, other than English, obviously.)


    It's useful to know a lot of different programming languages. Some of my projects start off in something as lowly as Javascript, 'cause that allows you to take shortcuts other languages don't. When I got the output I wanted, I rebuilt it as a command line program in C/C++. When, eventually, that works, I'm going to rebuild it in Objective C or C#; possibly for Windows, possibly for Mac. Maybe both.


    Intelligence? Nah, personally I'm doing just fine with tenaciousness and stubbornness.

  • pvonk Level 6 Level 6 (13,700 points)

    Aside from learning a language and a GUI library for the platform you plan to use, you really need to learn about design patterns, algorithms (and efficiency), and data structures.  I'm sure I'm overlooking some other obvious ones, but these are important if you plan to write "good" programs for public consumption.


    After these basics, you might look at concurrent programming, network programming, mobile device programming (obviously), and learn some math, like linear algebra and discrete math.

  • stevejobsfan0123 Level 8 Level 8 (38,870 points)

    And be sure you do thorough bug testing!