Your first year in code is a whirlwind, I know it was for me. The more you learn, the more you learn that theres more to learn. Code is such an abstract problem that theres no set of always-applicable rules or rock-solid advice. Code powers the planet these days, but knowledge is still passed down through our elders and cultivated via community.
There is no one true way to be a coder. Gone are the days, if ever they truly existed, of the archetypal programmer. We all carry supercomputers in our pockets. Cloud service outages are front page news; email servers and encryption can be everyday political topics. The nerds have won and code has become mainstream.
The fact that this book is such a true bottom-up community initiative speaks to the soul of the material. Isaac and the rest of the incredible authors assembled in these pages represent the warmth, humanity, and diversity of our industry. If you are in your first year of code, youre lucky to have discovered material like this. I wish I had. Its still a tremendous read years into my career.
About the editor
Im a self-taught programmer.
By that I mean a lot of different people taught me to code. Mostly strangers. When I was in middle school, I found an ebook called C++ For Dummies that my brother had bought. I read it until the chapter on pointers, where I got confused and gave up. Then a few months later I did it again. I read the first several chapters of that book over and over until I practically knew them by heart. I wrote a Fahrenheit-to-Celsius converter. I started thinking about classes and objects. I was so curious.
Part of that curiosity stemmed from the fact that I identified with code. Computer programming was nerdy, and I was a nerd. I mean, I had friends who wore Naruto headbands and played Yu-Gi-Oh! in the cafeteria, and I wasnt quite that nerdy. But by my senior year of high school I was president of the computer support team and co-president of the speech and debate team, so that should tell you what kind of kid I was. Code was exactly the kind of thing I wanted to play with.
Anyway, I learned Python a year or two after I first picked up that C++ book, and then a bit of HTML, and then Visual Basic, and before long I had filled up a folder on my familys computer with ebooks and CHM files (an old form of hyperlinked documentation) that all had ridiculous titles like Learn PHP in 24 Hours. I had even written a couple of programs on my TI-84 calculator to save time on calculus homework. But I had also written off computer programming as an unrealistic career ambition. Back then coding just seemed like a fun hobby for a kid who didnt get out much. I had no way of knowing that over the next decade Silicon Valley would explode with tech startups, web developers would command salaries comparable to corporate lawyers, cell phone apps would become a 100 billion dollar market, and nerds would take over the world.
So I set a more attainable career goal: become a business lawyer, then a politician. And thatd be the whole story if I hadnt run out of money during my sophomore year of college. After a disappointing job search, I managed to land a position as a technical support agent, fixing printers and upgrading operating systems in a cubicle on the outskirts of campus. And on the days when all the computers were working and the printers were attending to their queues, I was learning JavaScript. The first version of my personal website, isaaclyman.com, was built almost entirely during downtime on that job. And I have that first website to thank for the career I have now.
I love this career, and Im happy to report that Ive been cured of all my former political ambitions. Im now a senior software engineer at a billion-dollar company that helps hospitals save lives through cutting-edge healthcare analytics. I didnt know it was possible to have this much fun at work. But coding is fun, and I think thats the first thing I want to say about it: for all the negatives in this field of work (and there are a few), I still get a thrill whenever I write a clever piece of code.
Looking back on my career, its clear that Ive had an extraordinary amount of privilege on my side. Tech is full of gatekeepers, unwritten rules, poor documentation, and unacknowledged bias. Sometimes it seems that everywhere you look, theres someone else telling you youre not a real developer unless youre exactly like them. Many talented programmers have been squeezed out by these institutional problems. It will take a generations combined efforts to fix them, but in the meantime, I hope this book can make a difference. In its pages are the encouraging and persistent voices of your colleagues, telling you that you can do this, youre smart enough, others have been where you are, and were all in it together. My co-authors and I have done our best to write the tech industrys unwritten rules, call attention to its blind spots, share the knowledge we wish wed had years ago, and open the gates.
I hope this book is useful to you. If you have questions about anything you read here or just want to say hello, you can drop me a line on Twitter (@isaacdlyman).
Good luck!
Isaac Lyman
About this book
It all started with a question: what do you wish you had known during your first year as a programmer? I asked this question online when I announced the book, and before I knew it almost a hundred software developers from around the world had volunteered to help me answer it. Some signed up as beta readers and others offered to write content. The whole thing came together at an incredible pace. In the end, the work of 15 other authors was selected for inclusion. The following chapters represent some of the best, most practical advice the development community has to offer. The author of each chapter is listed underneath the title.
The goal of this book is to help you start your programming journey a year or two ahead of where we were when we started. Theres a lot of how-to, a splash of career advice, and a bit of pep talk. Its a good read for Computer Science majors, dev bootcamp students, beginning devs on a self-learning path, or anyone who wants to figure out if programming is for them.
More importantly, this is stuff you wont easily find elsewhere. You wont get it in a college course or a bootcamp. It wont be in the company manual for your first job. Most software books are extremely technical; this one is different. It will apply to you regardless of what sector or programming language you want to get into. Its mostly about the squishy stuff: what happens around and outside the code. This is important because writing code is only a small part of a programmers jobresearchers have found that the average programmer only writes about 25 lines of code per day. Code is really just the beginning.