CHAPTER

This chapter is in progress!

One Book Can Only Take You So Far! Ten Concepts That Deserve Your Attention

This is a book about getting a job, which means we neglect other topics highly worthy of your professional attention. Here are ten you should be aware of.

Computer Science as an academic discipline

One of the main knocks against self-taught programmers like you and I is that we’re bad at actual computer science, e.g. the theoretical fundamentals of computation, algorithms, and the architectures of hardware and software. It is important to continue your computer science education beyond the rudiments contained in Zero To Code, which is, after all, a book about getting a job. Luckily, the software industry is absolutely chockful of self-taught people, and there is no stigma around not immediately knowing every sorting algorithm under the sun. What is important is that you respect this kind of knowledge, and slowly (rapidly?) begin to acquire some of it for yourself. Appendix A lists recommendations.

Programming Paradigms

OOP

functional programming

Concurrency

Operating Systems

This is what talks to all the electronic components that make up a computer. It’s the buffer layer between your program and all the wires in that computer.

Electronics

The aforementioned “wires in that computer” underlays all of the crazy stuff you can make a computer do. It’s worth slowly peeling back the layers of electronic circuitry and computer machines as your career progresses. It will also help you become a grizzled veteran, as you will unearth the secrets that make programs work.

Ethics in Software

One drumbeat that this book is dancing to is the fact that software is such a young industry. It’s so young that the talent pipelines have not yet been developed, making the industry easy to break into. It’s so young that many ethical issues that need deeper consideration than they have received. (Indeed, maybe society is too young… but let us not gaze too deeply into the abyss.)

Throughout your career, ask yourself the hard questions: If I go work for this military contractor, will I write code that will ultimately have contributed to deaths of innocent Iraqi children? Why does this 100-person company have only 1 non-white employee? When the robots take over in 20 years, are we all going to share in the spoils? Are Jeff Bezos and Elon Musk the richest men in the world because they or so brilliant or because they use slave labor?

A respectable software engineer considers questions like these throughout their career.

Other Programming Languages

After JavaScript, the second-most common language is probably Python. Python is a delightful, high-level language (JavaScript is also high-level) that is delightful to write.

More concepts coming!