The cyber/computer guy is always one of the most respected characters in almost every phase of life. Whether it be a criminal case of tracking a criminal or working for cyber security. The importance of the computer guy is very well potrayed by the makers of La Casa De Papel, who made their squad to go up just to get their cyber guy back and made two seasons out of it!
Every computer guy is once a novice, whether it be one in the movies or a real life software engineer in top MNCs. Each one of them started from zero, built a rigid foundation and then jumped into the career of their choice and aced it. In the upcoming article, a glimpse of “5 things every coder should know” will be given so that the reader can build a good foundation.
1) Know a programming language completely, from head to toe.
For learning a language from head to toe, a coder should start by learning a programming language like C++, Python or Java completely, from the basic functions like the ones including printing and taking values to the complex ones which include working with the memory from heap/stack, along with DATA STRUCTURES AND ALGORITHMS.
Data structures and algorithms
Data structures and algorithms have a huge impact on one’s coding as it reduces the time consumption, gives the learner a better understanding of frameworks such as angular, react, etc. and also helps the programmers do data management efficiently.
The interviews for technical roles in some of the tech giants like FAANGM companies (Facebook, Amazon, Apple, Netflix, Google, Microsoft) are more focused on measuring the knowledge of data structures and algorithms of the candidates as they want people who can think out of the box to design algorithms that can save the company thousands of dollars. The main reason behind this is, data structures and algorithms improve the problem-solving ability of a candidate to a great extent.
The main point behind learning a language in a full fledged manner is because the basic concept of the programming language are the same. Hence if a person wants to switch from one language to other, all he has to take care is the syntax of the new language and the addon benefits of the new language.
2) Choose your tools wisely:
The tool a person uses brings out the best version of that person. It also increases efficiency and boost productivity of that person, whether it be Normal carpenter or coder. While coding one needs tool which helps him write the code efficiently and correctly. Apart from writing codes efficiently, sometimes a good programmer might also want to save the code for future reference or need for some contributions from the open source. That’s where source control comes in.
Undeniably, a person can write codes in notepad or some other editors but it is preferable to write in an integrated development environment, also known as IDEs. this is so because of the extra benefits these IDEs provide over normal text editor: like, code prompter and code snippets and much more features which help the coder in writing better codes in quite less time frame. These ides also have an intel sense to warn the coder when he/she commits some mistake in the code.
There are a variety of IDEs on the internet, some can be used for an all over purposes while some others are language/ function specific. One such example for common use and specific IDEs are Visual Studio Code and Pycharm respectively. One can use Visual Studio code for common purpose coding of languages like C, C++,Java, android development and much more. While on the other hand, specific IDEs such as CS50 ID for coding in C and C++ or Pycharm for Python language.
We also have our very own ide which you can check out on https://ide.codewithgeeks.com/.
Source control is a concept which every software developer should know. In simple words, source control is a practice of tracking and managing codes change. It includes real-time documenting of the code development process and also includes fast conflict/ issue resolution by merging contributions from multiple resources/ contributors. Source control helps the coder in improving the development process by allowing different teams or individuals to work in parallel manner.
While working on the source control platforms, the original code written by the user, instead copies of the the main repositories are altered. These committed changes are then reviewed and checked and if it fits in, it is merged into the repository. Hence, the source code is also always safe and the code at every version is saved so as for the future reference. Git, GitHub, Git lab are very trusted and preferred platform by a huge portion of community for source control.
3) Good communication skills:
One of the main work of a good programmer is to solve the issues or problems assigned to him/her, weather it is a simple exercise question or one from a Multi- National Company.
Outside the code communication:
While dealing with comparably bigger problems in the corporate world the project manager has to go through a variety of layers of communication. One needs to commute with various individuals to get this work done.
The first being, communicating and understanding the problem/issue the client is facing, the second one includes discussing the issue with the core team and then present the client his solution. The third step is to divide the work among other teammates and explaining each member his or her respective work. And finally, the last layer of communication includes combining the code, amending it and returning back the final prototype to the client. If the solution brought up is new to client, one might also need to explain the workers/ employees the functionality of the software made.
In- code communication:
Adding to this, one should also prefer using understandable and relatable names for functions and variables in in there programs as these aid in understanding the code better for the beginners.
For example, if a coder is supposed to make a program to get the information of employees working in a a company, then emp_name, emp_id, emp_age, emp_residence could be considered as good choice variable names
Similarly, If a function is designed to give back the the factorial of the number entered by the user, then factorial (n) would be considered as a good function name.