Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,193,557 members, 7,951,331 topics. Date: Tuesday, 17 September 2024 at 02:18 PM

Other Things All Programmers Should Know - Programming - Nairaland

Nairaland Forum / Science/Technology / Programming / Other Things All Programmers Should Know (1341 Views)

What Every Dummy Or Expert Programmers Should Stop Doing / For All Programmers And People That Still Want To Learn Programming / I'm Leaving Nairaland But Not Without A Gift For ALL Programmers! (2) (3) (4)

(1) (Reply) (Go Down)

Other Things All Programmers Should Know by KazikageSama: 7:19pm On Jun 20, 2021
I am quite impressed with the increasing community of programmers in Nigeria. However, I have observed that while most people find it quite easy to focus on the building blocks of programming languages (data structures, iterations, data manipulations, user control forms etc), there are some missing puzzles and pieces that are required to become a better programmer.

As an Application Programmer-cum-Service manager-cum-Cloud Engineer/Architect, I thought it right to put together this piece to encourage and motivate programmers while also noting the obvious fact that programming extends far beyond writing codes. To become a better programmer, there are other skills that need to be imbibed and applied. Few are listed below:

1. Frameworks
Imagine you've become a disciple of Erlang or another new language. You decide it offers the best platform for writing a stable, bug-free app. This is a nice sentiment, but it could take years for you to rewrite all the code available for Java or PHP into your latest language of choice. Sure, your code could turn out to be dramatically better, but is that worth the extra time?
Frameworks let us leverage the hard work of those who came before us. We may not like the architecture they chose and we may argue over implementation details, but it's more efficient to stifle our complaints and find a way to live with the differences. It's so much easier to inherit all the good and the bad of the code base through a framework. Taking the macho route by writing everything yourself in your favourite new language rather than one of its more popular frameworks won’t allow you to enjoy the cream of your new choice as quickly as it would to simply defer to the framework makers and their APIs.
Depending on the programming language of your choice, it’s necessary you learn the appropriate framework(s) associated with the language. Laravel, Node, Vue are examples of frameworks.


2. Cloud Technologies
While I may not be able to cover all necessary topics on Cloud Technology because of it’s vastness, I’d focus on few areas that programmers need to focus on and learn.

a. Cloud Hosting
While shared web hosting (such as Bluehost, Dreamhost, Hostgator, A2Hosting etc.) still remains the cheapest, most popular and most widely available type of hosting solution, most technology-oriented organizations, e-commerce sites, government ministries /parastatals, corporates and freelancers are moving their solutions to Cloud hosting technologies (AWS, Azure, Google cloud, Oracle etc.) because of its ability to handle large amounts of traffic, its improved security protection, and its reliability.
Unfortunately hosting sites/applications on the cloud isn’t exactly like hosting with shared web space providers who already have a CPanel app installed. However, the good news is that cloud providers also have proprietary solution for deploying and scaling web applications e.g. AWS Elastic Beanstalk, Azure App Service etc. These services manages the creation of necessary underlining compute resources, deployment, scaling and monitoring.
A programmer in this age should be able to guide himself/herself around this services.

b. PAAS and SaaS solutions
A typical mistake new-to-cloud environment programmers make is trying to develop codes for all requirements and problems. This is very ineffective, unsecured, costly and time-consuming. It’s quite important that programmers are able to understand the available PAAS (Platform As A Service) and SAAS (Software As A Service) services and know when to apply these offerings in the cloud environment.
For example, Microsoft Azure provides Dynamic365 SAAS solutions (which is a product line of enterprise resource planning (ERP) and customer relationship management (CRM) intelligent business applications) that has 12 feature applications covering Sales, CRM, Finance, HRM etc.
Microsoft also provides a PAAS offering called PowerApps which allows you quickly develop and deploy applications with a low code/no code architecture. Full fledged apps can be built within days with this solution.
Other cloud PAAS/SAAS solutions include Load Balancers (abeg no try develop your own load balancers in the cloud except you have very specific requirements that generic layer 4 or 7 load balancers cannot handle), Analytics services etc.


3. Virtualization and Containerization
Micro-services is here to stay (atleast for now grin ). As programmers, it’s great to build your apps the microservice-way ( i.e. break the application into independent, loosely-coupled, individually deployable services). This microservices architecture allows for each service to scale or update using the deployment of service proxies without disrupting other services in the application and enables the rapid, frequent and reliable delivery of large, complex applications.
Although microservices architecture does not dictate the use of containers but most organizations that move to microservices architectures will find containers a more congenial way to implement their applications.
While Virtualization and Containerization are 2 completely different terms (I will do another thread on this 2 technologies), it’s good for a programmer to understand both and learn how to apply each based on the requirements.


4. Security Frameworks, Models and Best Practices
Hackers and programmers are not poles apart. Given the nature of their skill, they are cut from the same cloth. The tenacity that one needs to be a good programmer is the same set of skills that a hacker possesses (whether they are a black hat or white-hat hacker).

The programmer, however, follows the rules and regulations to build a product. A hacker uses his/her technical skills to obtain unauthorized access to data. Some of them violate this access and take advantage of the vulnerabilities. Some find these vulnerabilities and let the organizations know.

Programmers and hackers require immense tenacity and patience to do what they do effectively. While this is not a generalization, but most programmers think in terms of functionality, rather than security. A study showed how programmers might take the easy way out and not even implement password security as well. This is not a conscious decision, but this is simply how most it has been carried out for a long time now. Programmers build something, then QA tests to test the efficacy, secure programming has not been a thorough mandatory practice.
• A good programmer must understand how to scan for, sight and fix code vulnerabilities that can be exploited by bad actors.
• A good programmer must pay attention to details. While they write the code, programmers must think of how every detail may or may not affect security. They must think out of the box, beyond their perception of their code. After all, hackers are among the most creative people out there, to meet them head-on, a programmer must think alike too.
• A good programmer must understand and apply password encrypting, hashing and salting techniques.
• A seasoned programmer knows that every programming language has its pros and cons. The decision to choose a particular language is based on the software’s need. The project at hand and its necessity is the basis for a good programmer’s choice of language and framework. A good programmer should consider the security aspects in every language as well. A report stated how C language accounted for 47% of all open-source vulnerabilities. It also stated how the largest share of vulnerabilities in 2018 was in Linux Operating Software. Although the security of the code depends on the coder, it is good to be aware of the security loophole possibilities with each language and the scope of correction as well. A language will always be primarily chosen based on the need for the task, but this does not mean security should be neglected either.


5. Linux

While it is not compulsory to learn Linux to be a great programmer, Linux is a far better OS than Windows for programming. Some of the advantages are:
• Linux is lighter than windows, so resources are better managed unlike windows that runs multiple apps in the background thereby consuming RAM and CPU resources.
• Linux has a lot of great supported apps that are handy for many programmers. While you could just write your code using a simple text file, Linux has some very useful, and time-saving, text editors to make your life a lot easier.
• Linux has great support for most programming languages. Whether you need to write in C, C++, CSS, Java, JavaScript, HTML, PHP, Perl, Python, Ruby, or Vala, Linux supports them all. While you may come across some issues at times, in most cases you should have a smooth ride.
• If you love to customize stuff, Linux is for you. Linux is an ideal operating system for those who love to tinker and customize. Being open-source, pretty much every element of it can be played around with, from the GUI to the core kernel.
• Linux, being open-source, is free to download and install on your computer. This makes it great for software developers, whether they are a hobbyist, student, aspiring programmer, or a professional.
• Another great thing about Linux is that you can often automate many repetitive tasks using simple lines of code (say “Hello” to Bash Scripting).
• Lastly, knowledge of Linux can improve your chances of getting a job.

2 Likes

Re: Other Things All Programmers Should Know by BelloP: 5:42pm On Jun 21, 2021
Thank you OP. These overactive bots will not allow humans to exchange knowledge.

1 Like

Re: Other Things All Programmers Should Know by Deicide: 5:49pm On Jun 21, 2021
Why you no add VCS
Re: Other Things All Programmers Should Know by KazikageSama: 7:26pm On Jun 21, 2021
BelloP:
Thank you OP. These overactive bots will not allow humans to exchange knowledge.

Lol Yeah you are right. The bot banned me for completing my own post then deleted the concluding part. I will repost though.

1 Like

Re: Other Things All Programmers Should Know by 080bjaked(m): 8:39pm On Jun 24, 2021
Those bots can sure frustrate. I noticed that multiple attempts have been made to upload the second part but the bots took them down embarassed

1 Like

Re: Other Things All Programmers Should Know by bet9ja(m): 3:12pm On Jun 25, 2021
Nice article, Please add Mac OS to your list. Its a programmers dream. It took me less than 30sec to install node-modules. Meanwhile on my window machine, it will take me over 5min.

1 Like

Re: Other Things All Programmers Should Know by 080bjaked(m): 4:46pm On Jun 25, 2021
bet9ja:
Nice article, Please add Mac OS to your list. Its a programmers dream. It took me less than 30sec to install node-modules. Meanwhile on my window machine, it will take me over 5min.

Mac OS and Linux are almost the same thing. They are both offspring of Unix system but Mac is based on the BSD code system.
Simply put, if you know Linux, you know a great deal about Mac already.

1 Like

Re: Other Things All Programmers Should Know by Bigshoe2028: 12:54am On Jun 27, 2021
In the field of programming new challenges expose u to new knowledge , what makes one a programmer is the ability to adapt learn and solve a problem with the knowledge acquired so far effectively

Nigeria has more UX designers than actually really programmers

3 Likes

Re: Other Things All Programmers Should Know by KazikageSama: 10:08pm On Jun 27, 2021
6. Code Versioning (GIT), DevOps Solutions (CICD)
Very compulsory, very mandatory, very important. This cannot be over-emphasized :
• All programmers must learn to use at least one version control system e.g. Git
• All programmers must learn to use at least one CI/CD system e.g. Jenkins, Azure DevOps or other pipeline solutions.

7. Port numbers and management
Programmers should know basic port numbers and management. A simple analogy to explain this is: IP address is your house no. You can reach the house by just knowing the house no., but there are 10 members within a house. Who should receive the parcel? The receiver is identified by port. The person whose name is on the parcel should receive the parcel.
The idea behind using port no. is that since there are so many applications running on your system, which application should receive the packet? It is decide by port. So, IP address is the identifier of your system and port no. is the identifier of application running on that system.

8. Business Process Management

It’s quite important that as a programmer you understand the business process for which you are designing an application. If possible, sitting with the customers at their workspace for a couple of days to understand the end to end flow of the process help you churn out a better solution. A lot of times, user stories and business case documents don’t tell you the whole stories but customer engagement does (maybe that’s why I prefer Agile methodology to the traditional waterfall PM technique though).


In conclusion, this list isn’t in anyway exhaustive so you can add other missing points please. As a programmer, I’m certain you know that the path you are on is one of continuous learning. We cannot afford to be complacent else the industry will leave us behind. The technology space is evolving at a fast pace and to remain relevant, it’s necessary that we also evolve with the same pace.
Re: Other Things All Programmers Should Know by KazikageSama: 10:09pm On Jun 27, 2021
Deicide:
Why you no add VCS

What do you mean by VCS? You mean VS Code?
Re: Other Things All Programmers Should Know by Deicide: 3:19am On Jun 28, 2021
KazikageSama:


What do you mean by VCS? You mean VS Code?
Version control system
Re: Other Things All Programmers Should Know by KazikageSama: 7:09am On Jun 28, 2021
Deicide:
Version control system

Oh yeah, it is in the 2nd part of the article, I spoke about Git (not extensively though) but the bots delayed it as I was banned from posting for some days. Guess cos I mentioned some port numbers and names that programmers must be cognizant of as part of item 7.

Thanks.
Re: Other Things All Programmers Should Know by LittleBigDick(m): 3:12pm On Dec 25, 2022
Wow
Re: Other Things All Programmers Should Know by Sheriman(m): 4:22pm On Dec 25, 2022
If programmers will have to learn all these technologies so i ask when will programmers now have time for themselves and family.

(1) (Reply)

Help / C Code Help: How Do I Go About This? (pointer To Pointer) / New Game Sortables By Sonbim Games Nigeria Set To Launch 14:12:14 (Pics/Vids)

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 39
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.