1. Home >
  2. Apps >
  3. Groups >

What is the best way to learn programming?

Question asked by Kaustubh Katdare in #Programming on Nov 4, 2015
Kaustubh Katdare
Kaustubh Katdare 路 Nov 4, 2015
Rank A1 - PRO

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.


Posted in: #Programming
kapsn
kapsn 路 Nov 5, 2015
Rank E1 - BEGINNER
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.
Shweta Chauhan
Shweta Chauhan 路 Nov 5, 2015
Rank D2 - MASTER
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!馃槙
Shweta Chauhan
Shweta Chauhan 路 Nov 5, 2015
Rank D2 - MASTER
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!
kapsn
kapsn 路 Nov 5, 2015
Rank E1 - BEGINNER
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馃様馃様
kapsn
kapsn 路 Nov 5, 2015
Rank E1 - BEGINNER
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.??
Subathra Prem kumar
Subathra Prem kumar 路 Nov 5, 2015
Rank D3 - MASTER
Thanks a lot for Sharing your thoughts sir .hope you post several information regarding programming skills in future .
Bala Krishna Ceeparseti
Bala Krishna Ceeparseti 路 Nov 5, 2015
Rank D2 - MASTER
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!!馃槑馃槑
kapsn
kapsn 路 Nov 5, 2015
Rank E1 - BEGINNER
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
Kaustubh Katdare
Kaustubh Katdare 路 Nov 5, 2015
Rank A1 - PRO
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.
Vishal Sharma
Vishal Sharma 路 Nov 5, 2015
Rank B3 - LEADER
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:
muffinista/really-simple-history-api 路 GitHub

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,

Pocket History - Android Apps on Google Play

Take a look, try extending that code add more features like searching for text etc.
Bhavna k
Bhavna k 路 Nov 6, 2015
Rank D2 - MASTER
But sir if there is lack of internet can u suggest the other best alternative for it that is indispensable?
Kaustubh Katdare
Kaustubh Katdare 路 Nov 6, 2015
Rank A1 - PRO
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?
Deadman
Deadman 路 Nov 9, 2015
Rank D2 - MASTER
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.
Kaustubh Katdare
Kaustubh Katdare 路 Nov 9, 2015
Rank A1 - PRO
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. 馃榾
Anoop Kumar
Anoop Kumar 路 Nov 9, 2015
Rank A2 - PRO
馃憤 for
Deadman
codingbat.com
Deadman
Deadman 路 Nov 10, 2015
Rank D2 - MASTER
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?
simplycoder
simplycoder 路 Nov 11, 2015
Rank B3 - LEADER
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.
Deadman
Deadman 路 Nov 11, 2015
Rank D2 - MASTER
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.
MANU BHARADWAJ
MANU BHARADWAJ 路 Jan 4, 2016
Rank D3 - MASTER
I want to learn java but I don't know anything about it please help me
simplycoder
simplycoder 路 Jan 4, 2016
Rank B3 - LEADER
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.
Deadman
Deadman 路 Jan 5, 2016
Rank D2 - MASTER

Derek banas is good but it is too fast for newbie to grasp concepts. Go for durgasoft.

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.

Ashraf HZ
Ashraf HZ 路 Jan 5, 2016
Rank A2 - PRO
Hm, Durgasoft. I wonder if @durga would have picked that name if she was to start a business too 馃榿
durga ch
durga ch 路 Jan 5, 2016
Rank A2 - PRO
@ ash: see that is why people confuse me to be a 'Mr' -_-'
nope. Never that name.
VeeraVenkat Vittanala
VeeraVenkat Vittanala 路 Jun 19, 2018
Rank E1 - BEGINNER

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...

Kaustubh Katdare
Kaustubh Katdare 路 Jun 19, 2018
Rank A1 - PRO
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.聽

Kaustubh Katdare
Kaustubh Katdare 路 Jan 1, 2020
Rank A1 - PRO

This discussion is getting lot of views and I thought I'd update it for the coming year 2020. The basic tips to learn programming, I believe are the same. I'd like to add a little more perspective that helped me.

When I decided to learn programming, I decided to make an 'investment' in it. The investment came not in the form of time and efforts; but also monetary investment. I actually went ahead and bought a highly recommended IDE (Integrated Development Environment).聽

Pick Up a Good IDE

A good IDE will go a long way in helping you right at the time when you most need it. A missing semicolon or a missing comma inside an array definition - the IDE will quickly prompt you. I can't tell you how many hours it has saved me.聽

A good IDE will also make intelligent suggestions when you are calling a function, defining a class or just initiating an object. If you are an OOP, you should actually use an IDE.

Use A Popular Framework

Instead of writing code with plain language, my advise is to pick a good and popular development framework. In my case, it was WordPress - because it's really easy to understand WordPress development and second, Laravel - one of the top and most popular PHP frameworks.聽

A framework will bring in some sanity to your coding and you'll end-up following the best practices required to write good code. Of course, lot of experienced developers advise against it; but our goal is to be "able" to program that "doing it right".聽

Keep in mind that your programming skills will keep evolving every day you write code.聽

Enjoy programming, it's an awesome thing to do!

Jai Patel
Jai Patel 路 Jan 1, 2020
Rank C3 - EXPERT

The best way to learn programming is as follows :

1. Find your interest in any two languages covering front end and back end.

2. Check for exiting applications, software or websites build in the market.

3. Study in detail above as this will help to polish the languages you have chosen to master in.

4. Start coding small projects of which videos are available online.聽

5. Try to add additional output and perfections to the above.

6. Be creative by exploring the environment related to your chosen languages.

7. Start coding your project with at least one friend and keep books related to your chosen languages handy, in case to refer any ambiguity while coding or in case you both stuck up while coding.

8. Be original as well as practical

9. Think , create and act in an environment or scenario the project relates to, like create stimulation scenario.

10 Ones ready with almost all modules, ask any family or friend from non-coding stream to use it and collect feedback. Generally, a non-coder will give back feedback than a coder.聽

You must log-in or sign-up to reply to this post.

Click to Log-In or Sign-Up