Programming is logic based creativity. As exciting it is to hear to fundamental concepts of coding it sounds cool to develop the next app or the next web application. The world is becoming an IT hub. The world is a global village. The internet gave us so many new opportunities. You can literally work from home if you have a laptop and an internet connection. As more and more degrees created for software engineering are coming in universities like Master of computer science MCS and master of information technology MIT. the trend is constantly changing. Coding has become the new superpower. The ability to create an application and publish it to the world to see is phenomenal.
Some people are good at problem solving others are not. The quintessential developer is one who designs the application on paper in form of rough diagrams or prototypes and then starts coding. You need to have a talent for problem solving. Essentially its to break the problem in sub-problems and divide and conquer. You need to be a visionary who can achieve his goals. Goals should be realistic. You should be creative. Come up with new ideas to solve the problem. The language is just a tool. The essential factor is an algorithm.
There is a lot of effort to be put in a project. Laziness is detrimental. Apparently there is no shortcut. I know there is a lot of automation which helps but not always. If you can code from 8 to 12 hours a day diligently, without losing focus you will win. Hard work is underrated. If you look at other exceptional athlete like in any field. In order to live like the exceptional 1 percent you have to give a lot of sacrifices. That means having no or a subtle social life. The key is sticking to the problem longer than others. Eventually the results will speak for themselves. There are different skills you need to master.
Find your field (app, web…) —–> code diligently—–> measure the results—> gradually improve the process
It is a crucial skill for a software engineer. When we can move from line to line and see values of variable, constants and arrays change eventually we get a better understanding of the logic that how does the program function. Debugging is done to detect errors and is used in white box testing a lot. We select a module or portion of code we want to inspect. Place a breakpoint and by clicking F8 we can step into the code and watch the variables values change and the method calls which will show the flow in which direction we are moving. Debugging combined with logic understanding is imperative. In actuality, when you are stuck with an error it can sometimes take days to resolve the issue. Apparently, you will solve it but it requires diligence. It’s quite boring to stick to the laptop screen watching code and most people run away from it.
When we write code there are a lot of lines of code their. We have to increase the usability of the program by identifying which portion of code is called more frequently. We highlight the code and refactor it. The IDE will create a new method signature that will be available and can be called again whenever required. Refactoring also increases the readability of the program making easier for other developers who will maintain the code in the future. People do not have patience. They want the skills now. In the contemporary society there is bombardment of information on the web. The right information at the right time helps. Read blogs and magazines required by your particular field to stay up to date with the latest trends. Follow the think tanks on social media. It takes a lot of years to master a skill.
If you used visual studio before. It has a lot shortcuts. The intellisense is robust. It can provide hints, suggestions and method calls based on the scenario. You should know the tools and tactics in the IDE and how can it help you write more productive code. How you can apply these short cuts for example, in android studio you can create getters and setters by just clicking a shortcut in a class.
Programming language mastery
The programming language is just a tool we use to develop a program. The learning curve of a language can vary. A few years ago visual basic was the initial language taught in colleges because it had a steep learning curve. Now a day python is taught as the beginning programming language in most colleges because its syntax is easy and simple to learn. Its like english. When you check the code in python essentially it looks familiar like english. On the other hand Java is rigourous and has a high learning curve because it has object oriented concepts and you need to understand classes and objects to start coding also the pillars of object oriented programming like inheritance, encapsulation, data hiding and polymorphism. We should be familiar with these fundamental concepts. Apparently it takes a lot work and number of years to achieve mastery in a language.
Keep a daily journal with you
Write the amount of work you do on a daily basis in the journal. This will help you track your progress. Keeping a journal is a crucial way to measure progress. You can view the intricacies of the project. It will help you become more productive. For example, you can track the hours you spent on coding daily. All successful athletes measure their progress by writing in the journal. The contemporary methods are you can download a project management tool like trello or an app that helps you track your work. A research showed that you need at least five skills in order to survive in the job market. The top skill is problem solving the later are communication skills.