How can I learn programming coming from a non-CS background?

Dhairya Ostwal
CodeChef-VIT
Published in
5 min readApr 10, 2020
Don’t worry, we’ll help you get there :)

It is a possibility that you haven’t got into your desired branch in college or maybe opted for a non-CS branch and later developed an interest in programming or you’re looking for a career switch or some other reason, you just want to learn how to code. Well, you’re at the right place!

The majority opinion is that programming is boring, and includes sitting in front of that screen 24 x 7. This is not true. Instead, programming is an art in itself. It teaches you logic, gives you freedom from the crowd and takes you through the journey of being a wisher to a developer. Programming powers you to solve real world problems. Take the recent COVID-19 outbreak. There are so many technologies that are helping save people’s lives. Every time a piece of code executes without giving any errors, the satisfaction you get cannot be measured by any means.

Following are a few steps that may help you achieve your goal:

1. Learn a simple language:

Every time a programmer starts this journey, he/she wants to create huge applications, websites and develop great products. The first step is, to not get caught up in these fantasies, pace yourself and start with the basics. Learn a simple language, like C/C++, Java or Python. This will help you lay a strong foundation. Learn basic syntax and logic of things like loops and their types, variables, if-else statements, functions, different storage types etc. Then practice problems related to the same concepts, even if they seem simple to you.

2. Learn about installing and working on IDE(Integrated Development Environment)/Editor

More often than not, with a goal of learning the language, we often skip learning about the environment in which we’ll be coding. It is recommended that for a few days, try to know the in and out of your environment/editor. You will also discover some inbuilt editor themes(like light and dark), shortcuts and other settings which might be helpful to you at a later stage

Usually,

  • Java — Netbeans IDE
  • C/C++ — CodeBlocks IDE, Turbo C++
  • Python — Inbuilt Python IDE(called IDLE), Pycharm

3. Learn more with Libraries, OOPS and Projects

C/C++, Python have different libraries which are very useful and simplify our efforts of writing a huge chunk of code. With practice, you will be able to identify important built-in functions that you will use frequently while writing a program.

Object oriented programming, or OOPS is a very important concept to learn, as it prevents us from writing unnecessary code, that is generally, the same code for different functions

Example: A program which consists of two different cars. Both cars have a petrol tank, a gear, number of seats etc. Rather than coding for the same set of properties for both the cars, using OOPS concepts like class, object, inheritance will help you shorten your code.

You learn more about these concepts of programming when you build a project. Start on with a simple menu driven program of ATM. Coding your first project will be a lot of fun!

4. Get into Data Structures and Algorithms(DSA)

Data Structures and Algorithms may seem scary, but trust me, they’re not. Once you study the art, you’ll learn how to appreciate it, and also, get into a habit of using it. From huge systems, to a small application on your device, all products are developed using DSA concepts. Algorithms make your task much simpler in terms of space and time complexity. From the fastest and most relevant results you get on a Google Search, to getting from point A to B in a shortest time via Google maps, all functions use some DSA concept.

5.Practice Competitive Programming

Now you have your concepts! All that is left is practice.

What is Competitive Programming? Well it is a sport and the most efficient way to get better at programming, by helping you build stronger logic. You’ll write a few lines of code and solve many real world challenges, and you’ll end up developing a strong love for programming. This phase will seem like magic!

6. Maintain the momentum

There are times when you’ll have your lows. You will feel like the programming language too hard, there will be questions you’ll not be able to solve, codes you will not be able to debug. It’s absolutely okay to take rest, but do not quit!

Don’’t give up now, especially because you’ve invested a lot of time and effort in acquiring the knowledge, and it would not be smart to let that go to waste. Maintain the momentum.Be your own motivation.

There are many people who we admire, and aspire to be like. Mark Zuckerburg, or Elon Musk.These are not people who gave up just because things didn’t go in their favor. They fought for their dreams, and now their dreams have turned into huge companies, which each and every programmer aspires to work for.So, be the hero of your own story.

7. Grow Together

There are times when we feel lazy and are satisfied just by doing small and easy tasks. We become complacent and slowly enter our comfort zone, which is a slow and self destructive place. We must realize that growth lies outside our comfort zone. So, it now our job to start growing again, and to help others grow. Take part in competitions. Work on projects where you will not only improve your skill, but also learn how to be part of a team. Deadlines for projects will teach you how to work under pressure.

Especially if you are a designer, there will be an immense pressure on you to finish up designs fast for developers and other teams to work on.

Also involving friends is super fun! We get to learn from each other, help each other and ultimately step out of our comfort zones.

Don’t be that student in college who refuses to take up these opportunities, by only staying in the hostel room, and refusing to be part of any community.

So, go, and start this beautiful journey of programming. I would love to hear about how -

  1. Programming has made a difference in your life?
  2. You overcame the difficulties you faced during your low moments?

Great journey ahead! 😄

--

--