Today, there are countless skills and specializations for technical professions. Because of this, it’s important to be aware of what you should know. Every profession has those core skills that are must-knows in order to be successful. In fact, it doesn’t matter how long you’ve been in the business. Without a doubt, it’s just as important for seasoned software developers to stay current as it is for those just starting out.
After scouring the Internet for blogs from fellow software developers, I’ve outlined three concepts that all software developers need to know, and know well:
Software developers have turned to cloud computing services for a number of reasons. Mainly, because it has changed the way we execute large-scale web applications. To illustrate, there are many positives to the elasticity and scalability of testing environments that cloud computing services provide. Many services offer the option to generate synthetic test data, and more of the environment build is automated. Additionally, you no longer need change requests. An internal system limits you to the hardware you have. By contrast, cloud computing speeds up projects and you pay on demand, meaning, you pay as you go so you’re only purchasing what you’re actually using.
There are multiple facets of cloud computing, all of which any software developer should understand inside and out. For more specific explanations on these types of cloud computing, check out this article from InfoWorld:
- SaaS – software as a service
- IaaS – infrastructure as a service
- PaaS – platform as a service
- FaaS – functions as a service
- Private cloud
- Hybrid cloud
- Public APIs – application programming interfaces
- iPaaS – integration platform as a service
- IDaaS – identity as a service
- Collaboration platforms
- Vertical clouds
Next up, security. In regards to security, developers should understand that users only need access to do their job and nothing more. The Simple Programmer outlines this concept, well, simply:
For instance, is your application connecting to a database using an account that has superuser access, such as dbo in SQL Server? This can open you up to exploitation. If your application has a SQL injection vulnerability and it is exploited, the attacker could drop tables and do all sorts of nasty stuff to your application’s database or hop to another application’s tables.
A more secure approach would be to create an ID just for your application (often referred to as a service account) and only grant the permission to that ID absolutely needed by your application to do its work. If your application’s ID has only read-and-write access, then your tables won’t be destroyed (or worse yet, another application’s tables) if the worst happens.
A Bash script is a plain text file which contains a series of commands. These commands are a mixture of commands we would normally type ourselves on the command line (such as ls or cp for example) and commands we could type on the command line but generally wouldn’t (you’ll discover these over the next few pages). An important point to remember though is:
Anything you can run normally on the command line can be put into a script and it will do exactly the same thing. Similarly, anything you can put into a script can also be run normally on the command line and it will do exactly the same thing.