Some of the Gen Y/Z kids may have got some insight into some of these aspects, thanks to the active opensource communities. But, still collating these in one place so that they get a view or an introduction to most of these by the time to get into full-time programming.
I am planning to expand on each of these topics, as the time permits and would be linking to the blog article as I write them.
Here is the inventory of items that are part of the tool kit, with predominant focus on model web applications and mobile apps:
- Understanding of the networking involved - the client browser to multiple servers where different pieces even seeming simple websites exist, the overwhelming TLAs invented to scare the new comers, etc.
- Understanding what happens in the server and what happens in the client (the web and mobile)
- Security - What are the basics to know and modern security concepts
- Source control or version control - How to protect your work from getting lost
- Refactoring - The art of routing maintenance of the code you write
- Debugging anything
- Scripting tools a.k.a. Automating boring work
- *nix Basics - Programmers paradise