Wednesday, 20 September 2017

Learning a new programming language today

TL;DR - Understand the core concepts of a language and then alternate between learning details and putting them into practice
A language is a means to an end. Quickly picking up programming languages allows developers to build anything. I've recently been learning Java to contribute to a Spring backend. I've found that once the foundations of the language have been learned, a great way of learning is to develop a process of cycling through learning details, then putting them into practice. 

Getting started - Understand core principles

The first thing to do is understand the core concepts of the language and the main use cases. If you can, get an experienced engineer to mentor you. This way you'll cover the mundane setup stuff and be running code in no time. Spend about a day or two here, enough time to know everything to get you started but not too much that you end up bored and lose motivation.
Ask yourself the following questions:
Most of the above high-level questions don't have an absolute answer which is why exploring these questions and answers is key. This will allow you to establish strong foundations, on which to learn the details.

Learn the details

At this point you'll hopefully have some vague idea of what the language does and how to execute some code. So now it's time to get to grips with how to write it.
  • Learn some syntax, for example:
    • How are variables and functions declared?
    • What are the available control flows? e.g. if statements, for loops
    • What are the core data structures and how do you create them? (e.g. arrays and dictionaries)
  • What kind of features does it have? For example:
    • Does it have reference and value types? And how are they used?
    • Can you define interfaces/protocols?
    • How do you write concurrent code?
    • If it's strongly typed, does it have generics?
  • What's available in the language's standard library?
  • What are the main conventions people follow?
    • Check a code style guide, for example
    • Do developers rely on 3rd party libraries? If so what the most common ones? For example, I've found that modern Java codebases use RxJava

Dive in head first

Theory is great, but we learn much more through experience. Nobody learns how to ride a bike by reading a book about it. Try out one of the following in order to gain experience:
  1. Contribute to an existing project at your workplace, pair with another developer if you can.
    • I've found that going into an established codebase where good practices are followed has been awesome. It'll be easier to add new small features by extending existing code or by following existing patterns.
    • Code reviews by other developers will help point out issues quickly.
  2. Contribute to an existing open source project. It's common for projects to mark issues that outsiders can pick up, this is a great place to start.
  3. Create your own project. Find something you're keen on creating and build it with the language you're learning.
Lastly, stay out of your comfort zone and push yourself to constantly learn.
I’d like to thank Emily Woods for reviewing this article.

48 comments:

  1. i was thinking about doing a course on learning a new language. then i stubmled on your page and had it made way to easy for me as i had no idea where to begin. thank you

    ReplyDelete
  2. Wonderful post. I am learning so many things from your blog.keep posting.
    Excellent Vacation Courses in Chennai | Good Summer Course in Guindy

    ReplyDelete
  3. Thanks for the post. Kanhasoft is leading PHP Application Development Company in India, offering PHP solutions for businesses. To know more about visit our site.

    ReplyDelete
  4. You won't believe me, but I was planning to write a blog very similar to the one you have posted here. Great work!

    selenium training in navalur


    Python training In Navalur

    ReplyDelete
  5. Wonderful post. Thank you for updating such an informative content.

    Best Python Training Academy in Kanchipuram

    ReplyDelete
  6. Thanks for this greatful information. all this information is very important to all the users and can be used good at all this process
    Best Tally ERP 9.0 Training Academy in Kanchipuram

    ReplyDelete
  7. really you have posted an informative blog. it will be really helpful to many peoples. thank you for sharing this blog. so keep on sharing such kind of useful blogs.

    Best TALLY ERP 9.0 Training Academy In Kanchipuram

    ReplyDelete
  8. thank you for such a great article with us. hope it will be much useful for us. please keep on updating..
    Best software testing Training Institute in Kanchipuram

    ReplyDelete
  9. I admire this article for the well-researched content and excellent wording which is about software development language. I got so involved in this material that I couldn’t stop reading. custom software development company

    ReplyDelete
  10. This post was quite awesome and interesting to read. Congrats for your work. Thanks a lot for providing this with us. Keep on updating this with us regularly:
    Best Selenium Automation Course Training Institute in kanchipuram|

    ReplyDelete
  11. The best thing is that your blog really informative thanks for your great information
    Best tally erp 9 Course Training Institute in kanchipuram|

    ReplyDelete
  12. Awesome Blog with informative concept. Really I feel happy to see this useful blog, Thanks for sharing such a nice blog...
    Best Linux Certification Course Training Institute in kanchipuram|

    ReplyDelete
  13. Excellent post. I have read your blog it's very interesting and informative. Keep sharing.
    Best JAVA / J2EE / J2ME Course Training Institute in kanchipuram|

    ReplyDelete
  14. Nice post.. Really you are done a wonderful job. Thanks for sharing such wonderful information with us. Please keep on updating...
    Best C & C++ Course Training Institute in kanchipuram|

    ReplyDelete
  15. Very nice post here and thanks for it .I always like and such a super blog of these post.Excellent and very cool idea and great blog of different kinds of the valuable information's.
    Best Tally Erp 9.0 Course Training Institute in kanchipuram|

    ReplyDelete
  16. I feel satisfied with your blog, you have been delivering useful & unique information to our vision even you have explained the concept as deep clean without having any uncertainty, keep blogging.
    No:1 Tally Training Academy in kanchipuram

    ReplyDelete
  17. This is really impressive post, I am inspired with your post, do post more blogs like this, I am waiting for your blogs.
    Best Tally Erp 9.0 Course Training Institute in kanchipuram|

    ReplyDelete
  18. Interesting post!!! Thanks for posting such a useful information. I wish to read your upcoming post to enhance my skill set and keep blogging.
    Best Tally Erp 9.0 Course Training Institute in kanchipuram|

    ReplyDelete
  19. This is excellent information. It is amazing and wonderful to visit your

    site.Thanks for sharing this information, this is useful to me.
    Best Selenium

    Automation Course Training Institute in kanchipuram
    |

    ReplyDelete
  20. I have read your blog. Good and more information useful for me, Thanks for sharing this information keep it up....
    Best Dot Net Course Training Institute in kanchipuram|

    ReplyDelete
  21. Really it was an awesome blog...very interesting to read..You have provided an nice information....Thanks for sharing..
    Best Hardware & Networking Course Training Institute in kanchipuram|

    ReplyDelete
  22. Thanks for the useful information of software testing courses, give more updates on software testing development, First time I visit your blog really nice, I bookmark your blog here after a daily visit. Learn
    No:1
    Java J2EE Training Academy in kanchipuram

    ReplyDelete
  23. Nice blog. Thank you for sharing. The information you shared is very effective for learners I have got some important suggestions from it.
    No:1 Hardware and Networking Training Academy in Kanchipuram

    ReplyDelete
  24. Thanks for your informative blog. Your post helped me to understand the future and career prospects. Keep on updating your blog with such awesome blog.No:1 Software Testing Training Academy in Kanchipuram







    ReplyDelete
  25. Nice blog. Thank you for sharing. The information you shared is very effective for

    learners I have got some important suggestions from it.
    No:1 Azure Training Academy in

    Kanchipuram


    ReplyDelete
  26. Very informative article, Which you have shared here about the programming language learning for software application development. After reading your article I got very much information and It is very useful for us. I am thankful to you for sharing this article here.

    ReplyDelete
  27. Nice..You have clearly explained about the conept..Its very useful for me to undertand..Keep on sharing..

    No:1 Azure Training Academy in Kanchipuram



    ReplyDelete
  28. The provided information’s are very useful to me.Thanks for sharing.Keep updating your blog.

    No:1 Networking project Centre in kanchipuram

    ReplyDelete
  29. this is really too useful and have more ideas from yours. keep sharing many
    techniques.

    No:1Hardware and Networking training Center in Kanchipuram









    ReplyDelete
  30. this is really too useful and have more ideas from yours. keep sharing many
    techniques.

    No:1 CCNA training Center in Kanchipuram









    ReplyDelete
  31. It is really a great and useful piece of information. I am glad that you shared this helpful info with us. Please keep us up to date like this. Thank you for sharing.
    IT Project Center in Chennai

    ReplyDelete
  32. I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.
    Best Python Project Center in Chennai

    ReplyDelete
  33. Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing.
    No:1 Dotnet Project Center in chennai










    ReplyDelete
  34. This information is impressive..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
    AWS Certification in Chennai

    ReplyDelete
  35. I have completely read your post and the content iscrisp and clear.Thank you for posting such an informative Blog, I have decided to follow your blog so that I canmyself updated.
    Best CCNA Certification in Chennai





    ReplyDelete
  36. This information is impressive..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
    AWS Certification in Chennai

    ReplyDelete
  37. Great and useful article.Thanks for taking time to share this post
    Android Project Center in Chennai

    ReplyDelete
  38. Your blog is awesome..You have clearly explained about it ...Its very useful for me to know about new things..Keep on blogging…
    No.1 PHP Project Center in Chennai

    ReplyDelete
  39. I have read your blog. Good and more informationuseful for me, Thanks for sharing

    this information keep it up....
    No.1 Python Project Center in Chennai








    ReplyDelete
  40. I am very happy after find this post and really helpful. Thanks for sharing this Informative content. Well explained. Got to learn new things from your Blog. your site really helps me for searching the new and great stuff.
    ECE Project Center in Chennai

    ReplyDelete
  41. Excellent post!!!. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it.
    Embedded Training Center in Kanchipuram

    ReplyDelete
  42. Nice Post! It is really interesting to read from the beginning & I would like to share your blog to my circles, keep your blog as updated.
    No.1 ANDROID Training Institute In Kanchipuram








    ReplyDelete
  43. What a fantastic blog you should written in well manner.Iam really happy to read this
    blog.Thanks for sharing.keep sharing more blogs.
    No.1 Tally Training Institute In Kanchipuram

    ReplyDelete

  44. This is excellent information. It is amazing and wonderful to visit your site.Thanks for sharing this information, this is useful to me…
    Machine Learning Training Center In Chennai

    ReplyDelete
  45. What a fantastic blog you should written in well manner.Iam really happy to read this
    blog.Thanks for sharing.keep sharing more blogs.
    No.1 python Training center in Kanchipuram

    ReplyDelete
  46. Awesome Post!!! With unique content, I really get interest to read this post. I hope this article help many of them who looking this pretty information.
    No.1 Android Training institute in Kanchipuram

    ReplyDelete