I Have Learned Syntax, Now What to Boost Up?
You must have come up with a similar question in your mind after you started to learn computer programming.
You are familiar with the syntax and data structures of any programming language like Python, C++, Java, but you are stuck on how to actually build a solid application.
You must have felt while browsing other people’s projects that they are using other resources other than just their text editor to create their applications.
How would you find these resources so you are not constantly reinventing the wheel?
Yes, your question perfectly makes sense and I’m here to give you advice.
So I say that:
Now you learn the other 99.99% of programming.
Just kidding!
The first step is:
- Start making things.
Just try to make something.
If you can make it entirely using things you already know, then try making something more complicated.
At some point, you’ll find that you need the things you don’t know. That’s when the learning happens.
You’ll definitely pick things up as you go, that’s part of this journey.
A good google search is one of the most valuable tools in a programmer’s toolkit.
Here is my personal experience.
Whenever I want to make something new in python and don’t know how, I split up the problem into small parts and google each part.
If Google doesn’t yield anything useful, I’ll ask on stack overflow.
Stack Overflow is the largest, most trusted online community for developers to learn, share their programming knowledge, and build their careers.
There is a recurring theme we see with the newbie developers.
When you are a newbie, you put in your time to learn the basics of a programming language or two and you feel pretty comfortable doing programming exercises.
But you don’t know how to apply what you’ve learned.
It usually comes in a phrase similar to “I know how to program, but I don’t know what to program.” The responses are typically “do programming challenges”, “contribute to an open-source project”, or “make a game.”
Doing programming challenges is good mental practice.
But they do little to help someone learn how to create a new program.
Contributing to an open-source project is a step up.
You might learn about how a real project is structured and improve your skill with the programming language, but won’t learn much about the full lifecycle of a project.
Some projects are very complex too, which can be intimidating for a newbie.
Making a game is another step up.
Games are fun!
The same dilemma arises though. “I want to make a game, but I don’t know what to make.”
If you pay attention to learning music as well as programming, You will recognize the same pattern with music.
“I know all the chords, and my hands feel comfortable, but I don’t know how to write a song.”
With music, we actually have a good answer.
There is a path for learning to create.
Musicians don’t typically just start writing their own music from the beginning.
Some musicians never progress to composing music and spend their whole life only playing music from other people.
In the programming world, the attitude is a little different though.
In the software community, the general attitude is “don’t reinvent the wheel.”
It’s almost frowned upon if you rewrite a library when a mature and stable option exists.
While it is a good rule in general, newbies should not be afraid to reinvent the wheel.
When it is done for learning or practice, it’s totally OK to make a wheel!
It is an important part of learning.
If you want to go the game route then make clones of Pong, Tetris, or Space Invaders.
They don’t need all the same features or have to be exact replicas, but you start with your goal and a blank slate, and you make it happen.
Don’t get the notion that you need to have the best idea ever before you write a program either.
I’ve seen the same mentality with the musicians.
Trying to create a masterpiece on their first attempt, putting all their energy into one song and not seeing the bigger picture.
The bigger picture being, you will write LOTS of songs over time, not just one!
The first song you write will probably be bad and you will probably toss it.
That’s OK! Don’t try to want to write the most epic 10-minute blow-your-face-off legendary piece of music on your first attempt.
You need to learn the process of songwriting, learn from your own experience, and put in the hours every week practicing.
You’re going to write bad programs before you write good ones.
Get over it, get through it, and get the experience so you can start to improvise on-demand in any key.
There is a reason we tell people to start with a “Hello, world.”
Because at that point in their journey, accomplishing that means that have conquered a certain number of fundamentals.
You understand how to compile, how to run, how to call a function and pass it parameters.
Writing a clone of an existing program is another big step, almost as important as the hello world step, only at a different stage of your journey.
When you are done with it, you have overcome certain challenges.
You had to figure out where to start, how to plan it, how to organize it, how to deal with the bugs, give it a personal touch, and package it up at the end so it is a usable thing.
Even when cloning a simple program, you are learning all of the processes.
In short, it’s a combination of experience and creativity.
Creativity is an aspect people often overlook in programming, but it is crucial.
Have you ever noticed how many programmers are also musicians?
Music involves a lot of technical analysis, structure, and patterns although many people consider it a purely creative endeavor.
Programming is often seen as a strictly technical act although it is mostly a creative endeavor.
You can foster creativity by cloning programs.
As you make them, you will find yourself thinking of new ways to tweak the program or maybe even a personal feature to add.
It will also inspire ideas for totally new projects.
The creativity comes out along the way, but you need to learn to play some cover songs first.
Over time, you’ll see how you can apply programming to almost everything.
You can automate tasks and tackle practical problems.
You’ll have no problem coming up with a big long list of things you’d like to make but won’t have time for.
You’ll also be able to solve problems on the fly.
“Oh, there’s an Excel spreadsheet with 100 sheets that need to be reformatted, split in to separate files, and converted to a CSV?
Coming right up!”
Don’t get hung up on trying to come up with the next best thing.
Write the programs that you will use.
The ideas for other projects will come along the way.
How many of you have been in a situation where you think “I don’t know what to program?” How did you handle it?
What advice would you give to others in that situation?
Think about it.
That’ll be your answer.
What’s next for you?
If you enjoyed this article, it would really help if you hit recommend below! Follow me on Twitter, LinkedIn, and Medium
Read my all posts/articles here: Praveen Pareek






