Wednesday, March 18, 2015

So You Want to Learn to Program

It's never too late to learn a foreign language. That includes programming languages. If you've never coded before, and you want to get started? Cool. Good decision. You can do this. You should do this.

Coding versus Programming

Somehow, a notion has gotten started that "coding" means either programming (in a language like JavaScript or C++) or writing HTML by hand. To me, writing markup (HTML) by hand is not coding. It's an extremely valuable skill, and you definitely should pick up some raw-HTML ability, but coding, to me, means being able to read, write, and debug scripts or programs.

Some people take "coding" to mean, also, batch-file creation: Linux shell programming or DOS batch files (shiver!). This is useful stuff, but not core to "programming" per se. Bypass it for now if you're a beginner.

Scripting versus Compiled Languages

One choice you'll need to make, up front, is whether you want to develop skills in an interpreted language (a "scripting" language, like JavaScript, Perl, or Ruby), or a compiled language (like C++ or Java). The key intuition here is that with a compiled language, you'll create standalone programs that you double-click to run, whereas with a scripted language, your code runs inside a special environment (like a web browser). So it depends what your goals are. If you want to write a standalone program (maybe the next Photoshop), software that will process files and write stuff to a hard drive, generally speaking you're looking at learning a language like C++ that produces standalone executables. For almost everything else, you're better off learning a scripting language. The learning curve is arguably a bit lower for scripting languages.

What if you're not sure? Carl Cheo has produced an amazing infographic that leads you through the considerations attendant to choosing a programming language:

Carl Cheo's magnificent how-to-choose-a-language flowchart. Click to be overwhelmed.

But please go to http://carlcheo.com/startcoding to get additional details, including some great curated links to getting-started resources. Really, you need to visit Carl's site. I'm serious.

Can I Really Teach Myself Programming?

Absolutely. Yes yes yes. Over the years, I've met many professional coders who were self-taught, without any formal training. In fact, one guy I'm thinking of not only never took programming courses in college, he couldn't even go to college because of severe agoraphobia that kept him from leaving the house. He started working as a pro coder in his teens.

I'm self-taught: I started with the C language, in the 1980s, on DOS computers (PC clones). Within a couple years I was programming in THINK C on the Mac Plus, creating standalone programs as well as plug-ins for Photoshop, After Effects, and Acrobat. I took a look at Java when it first came out, then dropped it, then came back to it a few years later, when applets (which everyone was sure would take off) died, and Java for enterprise (which no one, initially, thought would be a Big Thing) took off. I picked up JavaScript somewhere along the line, never figuring it would become the backbone of the Web. I now consider JavaScript the most essential of my programming skills.

The thing you have to realize about programming is that all programming languages do the same sorts of things (they all have variables, conditionals, looping constructs, subroutines, etc.), and so, at a certain level, it really doesn't mattter where you start. You can start with C++ (if you're a sadist like me), or you can start with Java, or you can start with Ruby or JavaScript, or you name it. You can start anywhere. If you're not sure where to start, start with JavaScript.

But Isn't Programming for Genius-Geeks?

No no no. Programming is for everyone. Just like French is for everyone. Spanish is for everyone. Russian and Hebrew and [insert language here] are for everyone. You're learning a language, okay? Let's get that straight.

That means you should approach learning JavaScript or Java or C# or Ruby the same way you'd approach learning any foreign language, with many of the same expectations. So for example, you don't expect to learn Russian in a week, right? You expect that it will take a good long while to pick up even basic fluency. That means putting in some time every day (or at least every week) trying to learn the basics.

With computer languages, as with any language, you spend about 40% of your time, at first, memorizing basic rules, basic vocabulary, syntax conventions. It's rote, initially. Just accept that. You'll spend about 50% of your time practicing usage: "speaking" the language, trying it out. (Prepare to feel clumsy, right? It's scary at first.) You'll spend the remaining 10% of your time learning the culture. To learn a language (whether it's German or Spanish or C++), you have to pick up bits and pieces of the greater cultural context, including history and lore. Languages don't exist in a vacuum.

Wax On, Wax Off

In learning any language, there's a lot of Wax On Wax Off. You saw The Karate Kid, yes? Remember all the "motions" the kid had to go through to learn karate? Mr. Miyagi had the kid doing repetitive, menial drudgework like painting his fence, sanding his floor, and waxing his car, for what seemed like forever, and for what seemed like no purpose at all. The kid was just about to lose patience and give up on Miyagi, when he suddenly has the critical breakthrough. He suddenly has the muscle memory, mental discipline, and reflex skills to begin doing karate for real.

This is what happens also with programming. You do a lot of "wax on, wax off," feeling like you're learning a lot of gibberish for nothing, and then suddenly you put the elements together and bang! it begins to make sense. At that point, you realize you're free to create, not just absorb. It's the same with learning any language: You start with rote memorization of vocabulary and syntax rules. You acquire a lot of useless junk in your head. But once you've internalized the rules of the language (and some vocabulary words) you realize you're now free to construct sentences on your own, not just use and reuse sentences you learned by rote out of a textbook. 


It will take a while to get to that point. So be patient. "But I  don't have patience!" you say. "I suck massively at patience!" Right, well, guess what? Welcome to the club. No one has patience! But this, again, is another reason to immerse yourself in learning to code. You'll learn something about that most difficult of life skills: patience. 

The rewards are immense, let me assure you. It's about patience, and payoff. The two go together. (Maybe you've noticed?)

So get started today.  Find some great resources at http://carlcheo.com/startcoding. Or try a first lesson here. Or see "Your First Hack."

 ☙ ❧ 

The following list of people who retweeted me yesterday might not be 100% complete, but it's as good as I can do with my silly notifications-scraping hack. In any case, you should get busy following the folks shown below. They're fantastic Twitter networkers, and they retweet! (Click their pictures; the pics are live links.)


Have you added your name to our mailing list? What the heck are you waiting for, a personal invitation from @TheTweetOfGod

Also please visit HackYourDepression.com when you have a chance, and share that link with someone you know who might be suffering from anxiety or depression.       

268 comments:

  1. Learning second language would give one self confidence to look the world in a different perspective. You have made me to realize that in a moment on reading this article. Thanks for sharing this in here. By the way you are running a great blog.

    German Language Classes in Chennai | French Classes in Chennai

    ReplyDelete
    Replies
    1. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a Java developer learn from Java Training in Chennai. or learn thru Java Online Training India . Nowadays Java has tons of job opportunities on various vertical industry.

      Delete
  2. This blog awesome and i learn a lot about programming from here.The best thing about this blog is that you doing from beginning to experts level.

    Love from C Programming Hub

    ReplyDelete
  3. Thanks for sharing this nice post. Idioms can have a literal meaning in one situation and a different idiomatic meaning in another situation. German classes in Chennai | German language classes in Chennai | German Courses in Chennai

    ReplyDelete
  4. Inspiring writings and I greatly admired what you have to say , I hope you continue to provide new ideas for us all and greetings success always for you..Keep update more information..
    Study in Germany Consultants in Chennai | Germany Education Consultants in Chennai

    ReplyDelete
  5. This is a great post. I like this topic.This site has lots of advantage. It helps me in many ways.Thanks for posting this again.

    Digital Marketing Company in Chennai

    Digital Marketing Company in India

    ReplyDelete
  6. A lots of thanks for shared this!!!
    Coding Courses Singapore

    ReplyDelete
  7. I wanted to thank you for this excellent read!! I definitely loved every little bit of it.Cheers for the info!!! programming homework service

    ReplyDelete
  8. you are posting a good information for people and keep maintain and give more update too.
    seo services india

    ReplyDelete
  9. Thank you for sharing this useful information.Keep on posting like this.
    Neurolinguistic Programming Certification in Chennai

    ReplyDelete
  10. I think great site for these post and i am read the most of contents have useful for my Carrier.Thanks for these useful information.Any information are commands like to share him.


    SEO Company in Chennai
    SEO Company in India
    Digital Marketing Company in Chennai
    Digital Marketing Company in India
    Web Development Company in India
    Web Design Company in Chennai

    ReplyDelete
  11. Very informative article. A great blog with good information. Checkout this
    Neuro Linguistic Programming in Chennai

    ReplyDelete
  12. Nice to see blogs like this...got a more useful informations..spent a nice time with this blog.keep more updates like this.
    Tax Filing Services
    Cpa Tax Accountant
    Tax Return Services

    ReplyDelete
  13. This comment has been removed by the author.

    ReplyDelete
  14. I wish to show thanks to you just for bailing me out of this particular trouble.As a result of checking through the net and meeting techniques that were not productive, I thought my life was done.


    ccna training in chennai



    ccna training in bangalore


    ccna training in pune

    ReplyDelete
  15. Thanks a lot very much for the high quality and results-oriented help. I won’t think twice to endorse your blog post to anybody who wants and needs support about this area.
    best safety training in chennai

    ReplyDelete
  16. I would like to say thank you for the amazing details and concepts you are sharing in this.

    Oracle PLSQL Training in Chennai
    Oracle PLSQL Training

    ReplyDelete
  17. Thank you for sharing this post.

    Education
    Technology

    ReplyDelete
  18. Such an informative blog that i have red yet.I hope the data you gave is helpful for the students.i have read it very interesting information's.
    Salesforce Training in Anna Nagar
    Salesforce courses in Anna Nagar
    Salesforce Training in T nagar
    Salesforce Certification Training in T nagar

    ReplyDelete
  19. I am really enjoying reading your well written articles.
    It looks like you spend a lot of effort and time on your blog.
    I have bookmarked it and I am looking forward to reading new articles. Keep up the good work..
    Java Training in Bangalore
    Java Training Classes in Bangalore
    Java Training Courses in Bangalore
    Best Institute For Java Training In Bangalore

    ReplyDelete
  20. Nice Article,Great experience for me by reading this info.
    thanks for sharing the information with us.keep updating your ideas
    .CPHQ Online Training in Qatar. Get Certified Online
    CPHQ Online Training in Pakistan. Get Certified Online
    CPHQ Online Training in Bishkek. Get Certified Online

    ReplyDelete
  21. Wow very interesting post thanks for sharing
    ccna training in kk nagar

    ReplyDelete
  22. Amazing article. Your blog helped me to improve myself in many ways thanks for sharing this kind of wonderful informative blogs in live. I have bookmarked more article from this website. Such a nice blog you are providing ! Kindly Visit Us @ Best Travels in Madurai | Tours and Travels in Madurai | Madurai Travels

    ReplyDelete
  23. The article is very interesting and very understood to be read, may be useful for the people. I wanted to thank you for this great read!! I definitely enjoyed every little bit of it. I have to bookmarked to check out new stuff on your post. Thanks for sharing the information keep updating, looking forward for more posts..
    Kindly visit us @
    Madurai Travels | Travels in Madurai
    Best Travels in Madurai
    Cabs in Madurai | Madurai Cabs
    Tours and Travels in Madurai

    ReplyDelete
  24. Excellent Blog. I really want to admire the quality of this post. I like the way of your presentation of ideas, views and valuable content. No doubt you are doing great work. I’ll be waiting for your next post. Thanks .Keep it up! Kindly visit us @Luxury Boxes
    Premium Packaging
    Luxury Candles Box
    Earphone Packaging Box
    Wireless Headphone Box
    Innovative Packaging Boxes
    Wedding gift box
    Leather Bag Packaging Box
    Cosmetics Packaging Box
    Luxury Chocolate Boxes

    ReplyDelete
  25. It has been simply incredibly generous with you to provide openly what exactly many individuals wouldíve marketed for an eBook to end up making some cash for their end, primarily given that you could have tried it in the event you wanted.
    CCNA Training | ccna training in chennai |
    ccna certification in chennai | ccna course in chennai |best ccna training institute in chennai

    ReplyDelete
  26. I Got Job in my dream company with decent 12 Lacks Per Annum Salary, I have learned this world most demanding course out there in the current IT Market from the python Training in bangalore Providers who helped me a lot to achieve my dreams comes true. Really worth trying.

    ReplyDelete
  27. Very interesting information blog post, my favorite this post, thanks a lot for these amazing content.
    Assignment Help
    Online Assignment Help
    programming homework help

    ReplyDelete
  28. This blog really clears out all my doubts. It comprises all the details that I needed to finish my assignments in a lesser period of time. Undoubtedly, it is Assignment Help that you can have online.
    Assignment Help
    Assignment help Online
    Online Assignment Help

    ReplyDelete
  29. No more worries about your chemistry homework when you have Chemistry Assignment Help services. If you are unable to write your projects or having doubt over any topic, ask academic writers for more information.

    Chemistry Homework Help

    ReplyDelete
  30. We are one of the leading service providers for Web design, development, app development and SEO services. If you are looking for a reliable IT solution provider then contact MIC Support for help. We have different departments for Web design, development and digital marketing to offer reliable service to customters.

    ReplyDelete
  31. This information is quite informative, and you certainly gain immense knowledge stream. In case you want to make surrounding neat and clean, you must access our top pest solution compay in bengalore service.

    ReplyDelete
  32. Thank you so much for this useful article. Visit OGEN Infosystem for Web Designing and SEO Services in Delhi, India.
    Best Website Designing Company in India

    ReplyDelete
  33. Appslure is Best app development company in mumbai and you can get website development service at a very affordable price.
    App development company in mumbai

    ReplyDelete
  34. Appslure is a reputed company based in India which provide mobile app development company in mumbai. Our website's layout will be very attractive and responsive, which will gain more visitors and you can get high lead and business from your website. Wonderful post, This article have helped greatly continue writing ..
    Mobile app development company in mumbai

    ReplyDelete

  35. Thank you for sharing this informative post.Myassignmenthelp.co.uk is giving essay help to students.we are already trusted by thousands of students who struggle to write their academic papers and also by those students who simply want finance assignment help uk to save their time and make life easy.

    ReplyDelete
  36. Thanks for the sharing these amazing blog its really very helpfull for me keep it up. If you want to know to recover yahoo password without phone number and alternate email. These are simple methods and suggestions to recover your yahoo mail account or
    recover yahoo password without phone number, but in case you can’t recover your yahoo password

    ReplyDelete
  37. هل أنت مهتم بتوسيع نطاق عملك خارج المنطقة المحلية؟ بالتأكيد ، هناك العديد من الخيارات لمواصلة الإعلان عبر الإنترنت في الإمارات العربية المتحدة. في ذلك الوقت ، من الجيد الانضمام إلى شركتنا المرشحة المشار إليها باسم شركات الإعلان في دبي لإجراء خطة التسويق الخاصة بك على نحو فعال. نحن نعمل في هذا العمل لفترة طويلة ونقدم خدمة إعلانية حقيقية وفقًا لرغبة العميل. خدماتنا الإعلانية عبر الإنترنت مفيدة لتطوير أعمالك. لا تتردد في التواصل مع شركتنا

    ReplyDelete
  38. This comment has been removed by the author.

    ReplyDelete
  39. Thanks for sharing useful information. I learned something new from your bog. Its very interesting and informative. keep updating. If you are looking for any Python programming related information, please visit our website python training institute in Bangalore

    ReplyDelete
  40. I would like to thank you for the efforts you have made in writing this post. Thanks for posting Really Such Things. I should recommend your site to my friends. If you are interested for CRM Software visit here:- CRM Software in Mumbai | CRM Software In Pune | CRM Software in Ahmedabad | Order Management Software in Mumbai | Field Management_Software in Mumbai

    ReplyDelete
  41. We are a leading wordpress support company which carries the specialization to give the worthy consequence as you ever expect. Our certified technicians will use the best skills to resolve your all technical issues related to wordpress.
    Call WordPress support phone number to get help & maintenance services for WordPress Websites Themes, Plugins, Hosting support, Hacked Websites, Http 500 error.

    ReplyDelete
  42. Hello Admin!

    Thanks for the post. It was very interesting and meaningful. I really appreciate it! Keep updating stuffs like this. If you are looking for the Advertising Agency in Chennai | Printing in Chennai , Visit Inoventic Creative Agency Today..

    ReplyDelete
  43. Mystifly is an Anywhere-to-Anywhere global airfare company, offering airfare content from 900+ airlines across 70+ countries. TeamIndia Webdesign provide the best Mystifly API Integration through XML with fast request response.For more information just visit our website.

    ReplyDelete
  44. Travelportalonline is a leading travel technology company providing robust solutions for flight, hotel, car rental and transfer to travel agencies, tour operators and travel management companies.

    ReplyDelete
  45. Gmail is no doubt one of the best email service providers for millions of users. Yet, in many instances, users do encounter their Gmail not receiving emails into the inboxes. If you are failed to fix this sort of issue on your own, get in touch with one of our Gmail service executives and get your issue resolved on time.

    ReplyDelete
  46. This post is really nice and informative. The explanation given is really comprehensive and useful.

    sap fico course
    sap fico training

    ReplyDelete
  47. I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic.

    sap workflows tutorials

    ReplyDelete
  48. Hello Admin!

    Thanks for the post. It was very interesting and meaningful. I really appreciate it! Keep updating stuffs like this. If you are looking for the Advertising Agency in Chennai | Printing in Chennai , Visit Inoventic Creative Agency Today..

    ReplyDelete
  49. Google account help users to access certain online Google services. Though the account is linked with many of the user-friendly features, yet some of its users are unable to proceed on the Google account recovery process. If you are the one facing issues while recovering your account, just get in touch with our experts. They are available round the clock to provide you assistance regarding your queries.

    ReplyDelete
  50. Outlook is way more than just an email client. But when the error comes and shows in its platform, users get stuck in accessing anything. If you are facing such kind of Outlook Error 0X800CCC0E on your screen while accessing the software, get in touch with one of our Outlook service experts to get instant assistance on time.

    ReplyDelete
  51. Thanks for share such a piece of nice information. A huge Manufacturer of Vintage collection of sari wrap skirts and beachwear wrap skirts. International delivery is available at an affordable cost. beachwear maxi dress, cotton wrap around skirts, buy wrap skirt online

    ReplyDelete
  52. What to Do If My Yahoo Mail Is Not Getting Any Emails?
    Facing issues in your Yahoo mail is not the uncommon you would have been thinking of. One such issue is Yahoo not getting emails. This sort of issue is though, can be resolved easily with just a few fixing techniques. If you are not able to troubleshoot your Yahoo mail to fix such an issue, get in touch with our expert via our exclusive contactyahoo service.

    ReplyDelete
  53. How to Resolve the Yahoo Error 19 Issue?

    Although the Yahoo temporary error issue can be resolved easily with just a few basic techniques, yet most of its users are failed to fix the Yahoo temporary error 19. If you are having such a problem in your mail account too, you must attempt to get in touch with our expert right away.

    ReplyDelete
  54. How to Change Yahoo Account Password?

    Yahoo mail is unquestionably one of the best webmail service providers allowing users to have several user-friendly features the email platform has. However, some of the users who are likely not aware of every bit of features of Yahoo mail and do not know how to change Yahoo password on their own. Just get connect with our Yahoo expert if you are unable to change the password.

    ReplyDelete
  55. When you write a blog post for your business is simply not going to be available on top of the search results. Google uses over 200 ranking factors in their algorithm like Domain factors, Backlink factors, User interaction, Page-Level factors, Site-Level factors to name a few. Therefore, a well-skilled SEO expert will help you in enhancing your business. We are a SEO Company in Chennai, our SEO experts have good years of experience with tried & tested techniques to rank your website. So, if you are looking for a Best SEO Company in Chennai feel free to contact us.

    ReplyDelete
  56. Translation Company in New York City
    Linguashine Translation Company is top translation company which provides error free quality language translation services across the world with a team of highly skilled translators. Are you looking for translation company in New York ? Stop searching & Connect with Linguashine to get quality translation services in New York.

    ReplyDelete
  57. Translation Company in Delhi
    We are top certified translation company in Delhi provides certified translation services for various sectors including business and technical fields at reasonable cost.

    ReplyDelete
  58. خرید بلیط هواپیما با گسترش روز افزون استفاده از اینترنت دچار تحولات زیادی شده است به طوری که امروزه بلیط هواپیما به مقاصد مختلف را می توان به صورت اینترنتی خریداری کرد. این روش دارای مزایای زیادی است که موجب می شود متقاضیان زیادی از این روش به صورت گسترده و روز افزون استفاده کنند. صرفه جویی در زمان و هزینه، سرعت و جابجایی در سفرهای بین شهری مسافران، باعث شده تا متقاضیان زیادی از روش خرید اینترنتی بلیط هواپیما استفاده نمایند. حق انتخاب گسترده تر مسافران یکی دیگر از مزایای استفاده از اینترنت در به دست آوردن بلیط دلخواه می باشد. با مراجعه به سایت تیک بان می توانید انواع بلیط هواپیما را به مقاصد مختلف و با قیمت های ارزان و اقتصادی مشاهده کرده و بهترین گزینه را رزرو کنید. - خرید بلیط هواپیما تیک بان - خرید بلیط اتوبوس - خرید بلیط قطار - چارتر

    ReplyDelete
  59. Thanks Admin For sharing this massive info with us. it seems you have put more effort to write this blog , I gained more knowledge from your blog. Keep Doing..
    Regards,thanks
    Ai & Artificial Intelligence Course in Chennai
    PHP Training in Chennai
    Ethical Hacking Course in Chennai Blue Prism Training in Chennai
    UiPath Training in Chennai

    ReplyDelete
  60. programming is closed to our live , it is necessry for us to know some of it .what you write is what i want to say! https://tjproducts.com.sg/

    ReplyDelete


  61. https://kdp.amazon.com/community/profile.jspa?editMode=true&userID=1424531
    https://kdp.amazon.com/community/profile.jspa?editMode=true&userID=1427388
    https://kdp.amazon.com/community/profile.jspa?editMode=true&userID=1428236
    https://challenges.openideo.com/profiles/1119874714489381863241486229946090
    http://www.dead.net/member/khairyayman
    https://vimeo.com/user54212503
    https://mootools.net/forge/profile/naklafshdmam
    http://bionumbers.hms.harvard.edu/bionumber.aspx?&id=113190

    ReplyDelete
  62. Arena Infosolution is the best company for the Digital Marketing Internship in Jaipur. Our company offers an internship that gives a good job after completion of the internship which gives a path to your career and makes your future bright in digital marketing.

    https://arenainfosolution.com/digital-marketing-internship-in-jaipur/

    ReplyDelete
  63. Thanks for the sharing these amazing blog its really very helpfull for me keep it up. https://www.slew-bearing.com/SLEW-DRIVE-pl550823.html

    ReplyDelete
  64. Thanks for the sharing these amazing blog its really very helpfull for me keep it up. https://www.tbtscietech.com/Falling-weight-deflectometer-pl3404345.html

    ReplyDelete
  65. After reading your article I was amazed. I know that you explain it very well. And I hope that other readers will also experience how I feel after reading your article.
    Ethical Hacking Course in Bangalore
    Certified Ethical Hacker Course

    ReplyDelete
  66. Wow! Such an amazing and helpful post this is. I really really love it. I hope that you continue to do your work like this in the future also.
    Ethical Hacking Training in Bangalore
    Ethical Hacking Training

    ReplyDelete
  67. Thumbs up guys your doing a really good job. It is the intent to provide valuable information and best practices, including an understanding of the regulatory process.
    Cyber Security Course in Bangalore

    ReplyDelete
  68. Very nice blog and articles. I am really very happy to visit your blog. Now I am found which I actually want. I check your blog everyday and try to learn something from your blog. Thank you and waiting for your new post.
    Cyber Security Training in Bangalore

    ReplyDelete
  69. I will really appreciate the writer's choice for choosing this excellent article appropriate to my matter. Here is deep description about the article matter which helped me more.
    Best Institute for Cyber Security in Bangalore

    ReplyDelete
  70. I am impressed by the information that you have on this blog. Thanks for Sharing
    Ethical Hacking in Bangalore
    Certified Ethical Hacker Course

    ReplyDelete
  71. Great post i must say and thanks for the information. Education is definitely a sticky subject. However, is still among the leading topics of our time. I appreciate your post and look forward to more.
    Data Science Training Institute in Bangalore

    ReplyDelete
  72. Excellent Blog! I would like to thank for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well. I wanted to thank you for this websites! Thanks for sharing. Great websites!
    Data Science Training Institute in Bangalore

    ReplyDelete
  73. Really nice and interesting post. I was looking for this kind of information and enjoyed reading this one. Keep posting. Thanks for sharing.Learn best Business Analytics Course in Hyderabad

    ReplyDelete

Add a comment. Registration required because trolls.