10 Tips for being a good programmer
I know some of them because I solve a competitive problem myself and I have a specialization in software engineering. One of the favourite places for those who like the code, or the finalists of ACM World. Personally, I also had the dream of one day going to the World Finalist. Although I left for some personal reason, I still haven’t been able to solve the problem. I may not solve the specific programming problem, but I’m trying to learn machine learning, data science problem and later.
Those who try to reach the World Finalist will have to work hard. There is a real story that I know of the Nafees brothers from Jahangirnagar University They used to take the pillows to the laboratory and sleep there. In today’s article, I won’t say anything about programming competition, but if you want to be a good programmer or software engineer, I will discuss what concepts should emerge from your own experience.
1) It is very important to know some basic programming concepts, such as variables, control commands (), loop (), arrays and functions. The concepts are the same in all languages, some syntaxes are different. You first need to choose a language to learn the concepts. Some popular programming languages are – Python, C, C ++, Java, PHP, C # etc.
2) How is the program going? How to keep different data, which data will be passed before which? To fix this, you need to know some data structures and algorithms. You have to learn a hash table or dictionary on it. Next, have some ideas about stack and queue. Linked list, good idea about trees. A good programmer should have an idea about the complexity of time and the complexity of space.
3) Regardless of the software we manufacture, research is common. We show this research by querying the data from end to end of the source in the database. However, the method of searching for a specific element in an array is called searching. You have to practice writing the minimal linear and binary search code manually.
4) The ascending and descending elements of a matrix are called classification in the programming language. You must be able to do at least bubble classification programming manually. All other classifications, such as classification by merge, classification by selection and classification by entry, must be learned slowly. Here I will say a little more, if you have a good idea about the concept of dynamic programming and graph theory, you can deal with many problems very easily. So, be careful when reading about it.
5) A database is used to store the data for a software application. There are different types of databases. NoSQL databases are used for relational databases like MySQL, SQL, Oracle, etc., again for unstructured, semi-structured or large data sets. Learn how to insert data into a database, how to extract it (and CRUD operations).
6) There must be an idea about the OOP concept. Object-oriented programming called OOP for short. In OOP, various aspects of the program are treated as real-world objects. There must be a clear idea about the three main parts of OOP – inheritance, encapsulation and polymorphism. So you have to have an idea about abstraction and implementation.
7) There are some popular packages / libraries / structures in all programming languages. You need to know at least one. But, gradually, we have to take some more ideas. Some frameworks like – Java (Spring), Python (Django, Flask), PHP (Laravel, Symphony). Different software and IDEs are used during programming. For example, PHPStrom, SublimeText, Netbeans, Pycharm, VSCode, Visual Studio .. Learn what you need to learn.
8) If more than one programmer works on a large software program, the code will be saved with version control or source control software. The most popular source control software – github, gitlub, bitbucket. To be an intelligent programmer, you must have a good idea about Git.
9) If you are a software engineer, having a good knowledge of testing and debugging is a very important point for you to know if your code is correct. Each IDE has a debugging tool and if not, add it. Selenium is very popular as a testing software.
10) You are developing software, but you have no idea of the requirements !!! It can’t be, you need to have little knowledge of requirements and analysis. And, SDLC should follow anyone. SDLC stands for Software Development Lifecycle. Many of these techniques are waterfall models, agile-scram, etc. are popular. To make good software, you must consider design patterns, code refactoring and reverse engineering.
You need to be able to find a solution to any Google problem. From Stackoverflow, Programabad, you need to know how to solve your problem using answers to other questions. It is best if someone tries to solve a programming competition or an online problem. Stay updated with new technologies (AI, machine learning, deep learning, etc.) and participate in regular technical chats.