I just had a conversation with a college student, first year, studying computer and software engineering and looking for a broad overview of technology and the field’s past and future. Out of that conversation I’m highlighting some stable pieces of data that have held true over time.
- automation – automate as you go. There’s a lot of up-front work that adds perhaps 66% to the tasks as you begin this but it catches up and makes everything much faster in the long run. In addition, you have complete repeatability and documentation of your environs.
for example, this morning my boss asked my to deploy a docker container. I had just done the work to port over a slightly different docker build over the last several days. Porting this particular container over took 10 minutes.
The first one took 3 days. So there’s that. - Maker Time vs. Manager Time. Meetings can be scheduled before 11 AM by any manager without consulting, but any meetings after that have to be agreed to be the Maker and they can decline, is a solution I found at one company. When you are working in code you hold a mental model of the construct in your head – the quick meeting disrupts that, costing 20 minutes or even hours to rebuild before forward progress resumes. Managers miss this, constantly.
- Language patterns – for loop, while loop, arrays, data structures, if-elif-else, dictionaries – are way more important and useful than the individual language syntax. A conceptual understanding of the structure of code, rather than the nuances of a particular language. Additionally expect AI to change languages and IDEs and coding trm=emendously in the next ten years. Much of the details of syntax and language is not shown by color emphasis in IDE’s – more direct syntax handling would be completely possible with AI. And I expect an AI language, a coding of code.
- Keep your resume up to date and use it to gauge how well your career is going – if you aren’t doing anything in your current job that add interesting accomplishments to the resume, reach for more interesting work where you are or find another job.
- About the last three years of your experience will be currently useful to you. Everything before that will have changed…
- Document your code as you go with detailed comments on what you were thinking, where that obscure variable derived from.
- Infrastructure as code – the value in this is repeatability. And written document of exactly how that server or application was constructed.
- Humans are terrible at repetitive tasks. Most are anyway, you’ll find the occasional (really valuable) person who can be counted on to do the repetitive tasks like a metronome, but those people are seriously rare. Automated systems avoid that.
- Managing your manager and human interactions that wrap around your job are going to be critical for you.
- Fan that spark of excitement. When you find that in what you are doing cherish it and make note of it and aim to make that as much a part of your career as is possible.
— doug