View Feed
group-icon
Coffee Room
Discuss anything here - everything that you wish to discuss with fellow engineers.
12933 Members
Join this group to post and comment.
Kaustubh Katdare
Kaustubh Katdare • Nov 4, 2015

What is the best way to learn programming?

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.
kapsn
kapsn • Nov 5, 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.
Shweta Chauhan
Shweta Chauhan • Nov 5, 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!πŸ˜•
Shweta Chauhan
Shweta Chauhan • Nov 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.
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
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
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.??
Thanks a lot for Sharing your thoughts sir .hope you post several information regarding programming skills in future .
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
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
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.
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
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
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
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
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
πŸ‘ for
Deadman
codingbat.com
Deadman
Deadman • Nov 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?
simplycoder
simplycoder • Nov 11, 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.
Deadman
Deadman • Nov 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.
MANU BHARADWAJ
MANU BHARADWAJ • Jan 4, 2016
I want to learn java but I don't know anything about it please help me
simplycoder
simplycoder • Jan 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.
Deadman
Deadman • Jan 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.
Ashraf HZ
Ashraf HZ • Jan 5, 2016
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
@ ash: see that is why people confuse me to be a 'Mr' -_-'
nope. Never that name.

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

Share this content on your social channels -