CrazyEngineers
  • I've been learning to program for the past ~1 year and have made significant progress. I think I've learned a lot of important things about the ways to learn programming and thought of sharing my learnings with you. I think these learnings will help those who want to learn programming but have failed at it for various reasons.

    1. Do NOT learn programming from books!

    Buying or renting a programming book is one of the first steps many newbie programmers take. Not that I'm against it; in fact, I recommend that you should indeed buy a good book. But do not start learning from the book chapter by chapter. I'll tell you what will happen: you will start reading with chapter 1 and even do exercises. But by the time you reach chapter 4-5; or let's say when the 'hard stuff' begins, you will start getting bored!

    You will not only lose your enthusiasm, but also be lazy. You will want to jump to other advance chapters to see what they have for you - and things will look even more frightening. End result? You will give it up.

    I've done that so many times!

    2. Use Books Only For Reference!

    I think books must be used ONLY for reference, while you are learning a new programming language. Books are divided into chapters and instead of reading from page number 1, you can simply head over to the chapter that you wish to refer to. A good book will offer end-to-end help to most of the the concepts and save you a lot of precious time!

    3. Start with a small, fun software project

    I'd strongly recommend that you should begin learning any programming language by starting with a small and fun software project. For example, if you are learning C, C++, Java or .Net; think of a project that is small; yet fun to do. It's important that the project should be interesting - because that will keep you motivated. It should be small as well; because you do need success to stay motivated, right?

    So what's a small project? Well, think about developing a simple 'time-keeper' that helps you maintain a record of your daily activities. Or how about an app that lets you split the expenses among your friends for restaurant bills. If that's hard, what about a simple software application that keeps track of your smartphone recharges and generates graphs?

    4. Learn the basics from videos on the Internet

    Name any programming language and you will find free video tutorials on YouTube. Make some good use of YouTube. The basic of programming language is 'logic' and the simplest of the language reserved keywords. As soon as you get a 'feel' of how to write in programming language; you are good to take up your first small project.

    5. Keep staring at the code and try to make sense

    Head over to GITHUB and find out the examples coded in the programming language that you are planning to learn. Keep staring at the code even if it does not make sense. Keep doing this until you start finding the links; and the code start making 'some sense'. That's a good start. It will help you when you advance a bit! This may seem weird; but that's exactly what helped me make some really good progress in programming!

    Trust me, the ONLY way that works in learning a programming language OR anything else is that you should actually get your hands dirty. That is, you will NEVER learn any programming language just by reading a book and never coding anything using your own brain and hands.

    Do you agree with above points? Do you have points to share or thoughts to discuss? Post them. Let's see if we can find out the top ways to learn programming language.
    Replies
Howdy guest!
Dear guest, you must be logged-in to participate on CrazyEngineers. We would love to have you as a member of our community. Consider creating an account or login.
Replies
  • kapsn

    MemberNov 4, 2015

    I do want to know what small projects are you talking about or from where do i get these small projects to rebuild my own.
    Are you sure? This action cannot be undone.
    Cancel
  • Shweta Chauhan

    MemberNov 4, 2015

    Kaustubh Katdare
    But by the time you reach chapter 4-5; or let's say when the 'hard stuff' begins, you will start getting bored!
    Happens to me all the time,I search for the best books, read 1-2 chapters,book then goes to my collection,then I switch to videos,then again sometime later, bring books back and start from beginning, the cycle goes on!😕
    Are you sure? This action cannot be undone.
    Cancel
  • Shweta Chauhan

    MemberNov 4, 2015

    kapsn
    I do want to know what small projects are you talking about or from where do i get these small projects to rebuild my own.
    As for what I suggest, you can just pick any of the real-time topics(you can invent one of your own or google them!), divide functionalities and requirements, pick one functionality each day or accordingly, work on it,for the time being, focus on achieving it only.the feeling you get after completing it is awesome,this will just make you want more of learning each day!
    Are you sure? This action cannot be undone.
    Cancel
  • kapsn

    MemberNov 4, 2015

    this will surely goes on until you start with any of new project.
    but how to start with it i'm also too lacking with this point😔😔
    Are you sure? This action cannot be undone.
    Cancel
  • kapsn

    MemberNov 4, 2015

    Crazy Pixel
    As for what I suggest, you can just pick any of the real-time topics(you can invent one of your own or google them!), divide functionalities and requirements, pick one functionality each day or accordingly, work on it,for the time being, focus on achieving it only.the feeling you get after completing it is awesome,this will just make you want more of learning each day!
    can you name few of them.??
    Are you sure? This action cannot be undone.
    Cancel
  • Subathra Prem kumar

    MemberNov 4, 2015

    Thanks a lot for Sharing your thoughts sir .hope you post several information regarding programming skills in future .
    Are you sure? This action cannot be undone.
    Cancel
  • Bala Krishna Ceeparseti

    MemberNov 4, 2015

    WOWIE......Firstly happy and excited to find few fellow coders here!!! coding is just awsum and one way to achieve perfection in it.. is by simply practising em .......Dont just directly Run em on development kits ...try practising em on a paper then ull get to know the real essence of it .Start with few logical programs like fibiinocci ,armstrong..n pattern problems....u'll definitely understand the joy of programming once u run it successfully..AS a mini project u can start with a simple bank application followed by complex projects...U can even check out few projects which some of our CE'ns have posted!!!Happy CODING!!.Adios!!😎😎
    Are you sure? This action cannot be undone.
    Cancel
  • kapsn

    MemberNov 5, 2015

    ceeparseti
    WOWIE......Firstly happy and excited to find few fellow coders here!!! coding is just awsum and one way to achieve perfection in it.. is by simply practising em .......Dont just directly Run em on development kits ...try practising em on a paper then ull get to know the real essence of it .Start with few logical programs like fibiinocci ,armstrong..n pattern problems....u'll definitely understand the joy of programming once u run it successfully..AS a mini project u can start with a simple bank application followed by complex projects...U can even check out few projects which some of our CE'ns have posted!!!Happy CODING!!.Adios!!😎😎
    can you send me the link of these projects
    Are you sure? This action cannot be undone.
    Cancel
  • Kaustubh Katdare

    AdministratorNov 5, 2015

    kapsn
    I do want to know what small projects are you talking about or from where do i get these small projects to rebuild my own.
    Well, for me it was always what would be useful to me. For example - it could be a simple expense tracker. Don't start with anything that's complicated. You can always make your project complex by adding more features.
    Are you sure? This action cannot be undone.
    Cancel
  • Vishal Sharma

    MemberNov 5, 2015

    kapsn
    I do want to know what small projects are you talking about or from where do i get these small projects to rebuild my own.
    If you take my advice, go to github, look for some small projects (which have less commits) study their code, see the changes they make over time and understand why they were made. Once you are done understanding it, start extending that project.

    Let me give you a simple example:
    <a href="https://github.com/muffinista/really-simple-history-api" target="_blank" rel="nofollow noopener noreferrer">GitHub - muffinista/really-simple-history-api: A Really Simple History API that pulls data from wikipedia to do a 'this day in history' type thing</a>

    Consider this repository, it has only 7 commits and by the description, its an API that retrieves what happened in history on a particular day of month.
    You can extend this to get the information about an year as well! That's a good small project that you can consider.

    And once you are done extending this API, layer it with more of your thoughts. 😀
    I already, extended this API to take year (the code is not public yet) and built an android application over it. Here it is,

    #-Link-Snipped-#

    Take a look, try extending that code add more features like searching for text etc.
    Are you sure? This action cannot be undone.
    Cancel
  • Bhavna k

    MemberNov 5, 2015

    But sir if there is lack of internet can u suggest the other best alternative for it that is indispensable?
    Are you sure? This action cannot be undone.
    Cancel
  • Kaustubh Katdare

    AdministratorNov 5, 2015

    Bhavna k
    But sir if there is lack of internet can u suggest the other best alternative for it that is indispensable?
    Well, if you have a computer and a mobile phone with data connection; you have all the Internet requirements fulfilled. I think Internet's become way more important for engineers than ever before. You should try and get access to the Internet.

    You might try and build offline applications. You may then upload your work to these skill showcase websites. Have you joined HackerRank yet?
    Are you sure? This action cannot be undone.
    Cancel
  • Deadman

    MemberNov 9, 2015

    For someone who has never programmed before reading a book is essential i think because it covers basics although practice is essential. And i prefer reading from book as in videos we may miss some important point.
    I would like to add codingbat.com. It has lots of basic problems which will make you quite an expert in loops, recursion. Then switch to hackerrank.
    Are you sure? This action cannot be undone.
    Cancel
  • Kaustubh Katdare

    AdministratorNov 9, 2015

    Right. If someone is absolutely new to programming; you will have to refer to the books or Internet resources for the basics. However, once you know what keywords the language uses and general format; the actual 'learning' will come from getting your hands dirty. 😀
    Are you sure? This action cannot be undone.
    Cancel
  • Anoop Kumar

    MemberNov 9, 2015

    👍 for
    Deadman
    codingbat.com
    Are you sure? This action cannot be undone.
    Cancel
  • Deadman

    MemberNov 10, 2015

    And codecademy.com.
    I don't seem to understand how practicing loops, arrays, etc will get you a job or help make you develop an app.
    There is nothing related to oops, exception handing, multi threading, enums, api in hacckerank. Its just difficulty level. I am done with codingbat. But here i feel its just a waste of time. I want to make my oops concepts stronger and develop a project. How should i do it?
    Are you sure? This action cannot be undone.
    Cancel
  • simplycoder

    MemberNov 10, 2015

    Deadman
    And codecademy.com.
    I don't seem to understand how practicing loops, arrays, etc will get you a job or help make you develop an app.
    There is nothing related to oops, exception handing, multi threading, enums, api in hacckerank. Its just difficulty level. I am done with codingbat. But here i feel its just a waste of time. I want to make my oops concepts stronger and develop a project. How should i do it?
    Read a lot of existing code, try to figure out how and why of some functionality.
    Should pay a lot of attention to exception handling and logging.
    How to use caching.. and I can just go on...
    Develop a sample project and try to incorporate these principles (Do not force them, but they should just gel with the code for the functionality), and then submit it on online forums for code review.
    Are you sure? This action cannot be undone.
    Cancel
  • Deadman

    MemberNov 11, 2015

    Can you post me the exact links of some simple java projects. I have been through github but all i found is some projects whose name itself scared me.
    Are you sure? This action cannot be undone.
    Cancel
  • MANU BHARADWAJ

    MemberJan 4, 2016

    I want to learn java but I don't know anything about it please help me
    Are you sure? This action cannot be undone.
    Cancel
  • simplycoder

    MemberJan 4, 2016

    manu bharadwaj
    I want to learn java but I don't know anything about it please help me
    I am not sure which java you are referring to.
    So I assume that you are a newbie to programing and hence I suggest you to search for tutorials on CE, and if you have unlimited bandwidth then I say, search Derek banas, thenewboston on YouTube.

    If you want to learn the old school way, I suggest complete reference java by Herbert S.

    Post your doubts here and community members would surely help you out.
    Are you sure? This action cannot be undone.
    Cancel
  • Deadman

    MemberJan 5, 2016

    Derek banas is good but it is too fast for newbie to grasp concepts. Go for durgasoft particularly this guy
    Its slow but one of the best I have seen in core java. I am not much into videos but this one uses white board technique rather than explaining ready made code.
    Are you sure? This action cannot be undone.
    Cancel
  • Ashraf HZ

    MemberJan 5, 2016

    Hm, Durgasoft. I wonder if #-Link-Snipped-# would have picked that name if she was to start a business too 😁
    Are you sure? This action cannot be undone.
    Cancel
  • durga ch

    MemberJan 5, 2016

    @ ash: see that is why people confuse me to be a 'Mr' -_-'
    nope. Never that name.
    Are you sure? This action cannot be undone.
    Cancel
  • VeeraVenkat Vittanala

    MemberJun 18, 2018

    It Just 15 days i have started learning python programming as many of the internet world recommended to learn first but still i have some confusion is it right to learn that or should i shift on something else...

    Are you sure? This action cannot be undone.
    Cancel
  • Kaustubh Katdare

    AdministratorJun 18, 2018

    Language doesn't matter. Python is a great programming language and if you are new to it - it's definitely a good start. 

    Make yourself familiar with the concepts, object oriented programming and keep writing as many programs as you can, on your own - that's the fastest way to learn programming. In your lifetime, you'll end up learning multiple languages and tools. 

    Are you sure? This action cannot be undone.
    Cancel
Home Channels Search Login Register