Want to learnprogramming? Build CRAP !!
blog.programmersmotivation.com /2014/06/19/beginner-programmer-want-learn-programming-start-
build-crap/
This post is actually inspired by many questions on Quora.com and many questions online and offline.
The questions are “How to get started in programming?“, “How can I keep up my motivation in
programming?“, “How can I develop my passion in programming?“, “I know the basics of
programming, but how do I become a better programmer?” or something on the similar lines.
While I was in college I was having similar questions. During my 9 year career in the software industry,
one thing that hasn’t changed till now is that still these questions are there lingering in many of the minds,
even the brightest minds.
So if your questions are similar, there is one common answer. Start to build CRAP. The only way to get
started and show some progress is to build CRAP. Yes. Seriously. Your programming journey starts by
building CRAP. Now, before you get upset and scold me for giving such piece of advice, read through the
entire post for the justification.
Why BUILD?
So you might ask why BUILD something in the first place? Shouldn’t it be fine with learning programming
using all the lab exercises that are provided to you as part of the curriculum. Shouldn’t it be fine if you read
a good book about your favorite programming language?
Think about this. How did you start to ride a bicycle? How did you start to walk? How did you start
running? How did you swim?
Did you take a book and read the components of a bicycle, and went on to read, read and read more as to
how the pedals operate, how to apply brake, how to apply sudden brake if someone comes in your path or
how to balance in a very narrow lane?
The answer would be No. You did it by starting to RIDE it. You did it by simply starting to DO stuff.
2.
Were you afraidthat you will fall down? Yes. Of course you were. But either there was someone to be on
your side (maybe your dad or mom or your brother) or you learnt on your own by falling a couple of times
but standing up again on your feet. Eventually you will learn and ride a bicycle effortlessly.
You need to see programming similarly. You can read the syntax of the language word by word, but unless
you start to build something, you won’t get that confidence as a programmer. And a programmer who is
not confident cannot go ahead and build great systems / applications / products once he is into the
software industry.
So get your foot out and start BUILDING something. I can assure you that, it is the fastest way to learn
programming.
Which Programming language to use?
OK. Now let’s assume you got convinced to build something. Now your next question might be which
programming language to use. My answer for that would be ANYTHING. But if you ask for my
recommendation, I would recommend one among Python, C#, JAVA, Ruby or Javascript.
There are also good blog posts on the recommended programming language for beginners. Here are a
couple.
Five best programming languages for first time learners
Which Programming language should I learn first?
But any language is fine to build something. Don’t get into language flame wars. If you try to research too
deep, you will get lot of biased opinions and you might find it hard to pick a language. All that matters is
instead of spending time on which programming language to choose, choose anything and start to
learn and start to build.
What to Build?
OK. Let’s assume you got convinced to build something and chosen your programming language. Now
your next question might be WHAT TO BUILD
This is an interesting question that will be surely in some of your minds.
Just imagine how much time you have wasted thinking about what to build?
Do you remember your first drawing? Obviously you won’t remember it, your parents would. If you ask
them, how was it, they would answer it was beautiful, elegant and graceful. That is not because of your
great artistic creation, but because they love you so much that whatever you do impressed them. But if
you take that first drawing and see it now, it would look like pure CRAP.
Yes, truly. But what’s more important was you did something. You built something. It was your first
creation. It might be crappy, but it served as a starting point for you to build further.
Probably few months later, you began to draw a straight line, a circle, an oval shaped figure, a house,
trees, mountains, birds and what not. But it all started with CRAP.
So instead of wasting time pondering what to build, just start to build CRAP. Let it be the most funniest
piece of work. Let it be a point of ridicule if someone sees it. Let it be a duplicate of what someone has
already did. Let it take longer than you expected. Let it be the most primitive of versions. Let it be a
simple calculator, a simple reminder app, a simple timetable app, a simple web page containing just the
3.
login, a simplefunction to do some task, a simple WHATEVER. But build it. Build CRAP but build it on
your own. You might also change your programming language depending on what you choose to build.
That’s OK.
Let me tell you something, the joy of building that crap will still be immense. One of the most important
things that a programmer or a software developer must cherish is to finish something. Even crap is
a finished stuff, of course if it’s finished. And in that sense, it will give you a sense of satisfaction.
I have seen a lot of people simply waste time by waiting for the right thing to build. Many even know that
developing a real world application would be their best bet. But they will have this question “What to
Build?”
So guys, instead of wasting time on trying to figure out the master piece which you will build, start out by
building absolute CRAP. It it turns out good, that’s great. Give yourself a treat. If it doesn’t turn out good,
who cares. You will still learn a lot from building that CRAP and you can go on to build better CRAP
Eventually it will turn out good.
The first CRAP that I built turned out to be for a mini project that I was working. It was a 2-Pass Macro
Assembler. I wrote the code in C language. It contained lot of lines of running code with just a single
function (main). I will write more about that story on a separate blog post. But the point is It Worked. In
the end, crap turned out to be a working code. And the joy that gave me was immense. It gave me great
confidence that I could go onto build something real. Something great. Something useful. And it gave me
a feeling that I actually belonged to the software industry. That is the confidence I lacked previously before
building it.
I practically discovered the answer to those questions (that I posted at the beginning of the post)
fortunately all by myself. And I wanted to share this with everyone who are looking for answers to those
questions.
So what are you waiting for ? Are you a beginner programmer or even someone who has learnt
programming but want to build something? Go ahead and build CRAP. And share your experience of how
you felt after building your first CRAP.
PS: If you find this blog post useful, please take a few seconds and share this post with your friends and
followers in social networks.
About the Author:
Rajaraman Raghuraman is a passionate software craftsman and an aspiring entrepreneur with 9 years of
experience in the IT industry. He is the founder of this blog “Programmer’s Motivation” and author of an
Ebook “Programmer’s Motivation for Beginners”
Join his mailing list of 1600+ people & Get useful content related to programming delivered right at your
inbox + get a free Ebook “Programmer’s Motivation for Beginners” by
Clicking here