BEGINNING WITH PROGRAMMING

Programming is one of the most sought after skills in the professional market. It is an nothing more than an interesting way to solve problems. Programming presents you with unique solutions to real world problems and tends to help develop logical thinking. Many people think programming is memorizing statements and words to make a computer do your bidding but let me tell you otherwise. Programming is  using your knowledge to solve problems thrown at you in the most effective way.

Let me nudge you on the right path to starting programming.

What is your goal ?

Programming can be for different tasks like :-

  • solving problems based around management of data
  • solving problems related to math and statistics
  • creating a utility for a specific task
  • creating games
  • automating daily tasks
  • to develop a new skill

There are many more forms that programming could take but focussing on your end goal will help you achieve it quickly and efficiently. Let me elaborate the aforementioned paths.

Solving Problems based around management of data.

To start with these problems you’ll need some knowledge of data structures so I recommend doing a basic course to learn what data structures are. Not only data structures but you may require knowledge of some oop concepts. There is no specific language specifically made for this task but learning C would be the best path to strengthen oop concepts and data structures as C works very closely with the operating system.

Instead of just starting coding you should first pickup a notebook to practice these concepts logically. Building a strong base of algorithms instead of trying to memorize a set of instructions in a particular language is the most important step.

A simple project can then be made to bolster these concepts. Create a data structure like a linked list, heap or any semi-complex data structure in whatever language you choose. Creating a program even to store and retrieve names would be helpful enough to start your journey.

Solving Problems related to maths and statistics.

To start with these problems you’ll require a knowledge of statistical methods and formulas. In these kind of problems generally data can be manipulated and analysed for interpretation as per requirements. The most recommended language for such problems would be R. It is tailored to be able to work with large data sets and has many inbuilt functions to make working with such data easy.

As our teachers stopped us from using calculators when we were younger I would similarly ask you to first try making the functions yourselves before using the in-built functions as knowing how to solve something manually would help you work through issues when automating the tasks.

A simple project can be undertaken to interpret freely available datasets. These datasets when worked upon can give a plethora of information.

Creating a utility for a specific task

This would depend on the type of utility you want to create. In such a situation you’d want to research the utility you want to make and decide for yourself what language you want to use. You’d want to check for the pros and cons of the technology you would want to use. Every language excels at some specific task and we want to be able to use the advantage to the fullest.

A simple project can be undertaken to set as an end goal while starting to learn the language.

Creating Games

This is a vast field with an even bigger community. To be able to make games you need to know some basics like the geometric world space and logic to be able to craft a game. There are quite a few game engines but probably the most recommended game engine for beginners would be Unity. it uses C# as the backend language so picking up basics of the language would be a good place to start.

Unity boasts a node based system for materials and setting up the scene. Many tutorials are available online for free so they would be your biggest reference points. The online community is not just large but helpful too. A lot of new users post questions about all the aspects of the process so don’t be shy to look something up online.

A simple project to be undertaken to make a basic game to imbue the basics of the process into yourself. There are many tutorials that start off from basics and ultimately combine the concepts to create a complete game.

Automating daily tasks

The use of smart home technology is very prominent in todays world and more and more stuff is being connected to the internet for easier use. The use of IOT can help you automate your house. technology like Arduino uses C or C# as their programming languages while raspberry pi uses node.js and python prominently. These technologies can be used to solve actual real world problems.

Smart switches and devices can be programmed to start up on a predefined time or on a set action. Even software tasks like backups can be automated with some simple shell scripting. Now automation of tasks is a 2 pronged path. Physical tasks can be automated using IOT and software based tasks can be automated using some scripting.

A simple project can be undertaken to bolster these concepts. A simple software automation task would be starting a download manager or torrent client and prioritising the downloads on the basis of speed and importance.

To Develop a new skill

Now this is where the learner has the most control. You can choose whatever language you’d like to learn and not limit yourself to a certain technology you could learn whatever you want to.

Depending on the path you would want to take you could choose to learn a language used for application design, web design, work with databases, etc the possibilities are endless. You just have to commit to the learning process and learn the basics which you could implement in any further projects.

Conclusion

No programming language is particularly difficult or easy to learn. Programming languages are nothing but tools and to wield any kind of tools you need to be capable. When your basics are clear you can implement them in any languages you learn.