Book 2: The Passionate Programmer: Creating a Remarkable Career in Software Development
I bought this book in 2010 or 2011, in the beginning of my IT degree. I thought it would help me focus on what I want to study. Instead, the first couple of chapters confused me. Each chapter ends with some actionable questions - and I could only answer "I don't know" for all of them. Do you want to position yourself in the bleeding edge of technology, or just the leading edge? Do you prefer to specialize in migrating legacy systems - requiring you to be an expert in a nearly dead language - but a very important task to help companies move forward? List all the technologies you use and rank them in their lifecycle.
Err... I don't know. I have a year of writing some C and C++?
I felt overwhelmed, put the book down, then promptly forgot it existed for about 10 years - except for times I was moving - Oh, yes, I should read that book some day.
I finally decided to get it over with - after all, 10 years later, I am in the IT field as a Database Administrator and report writer, 8 years in one company, even, so I expected to blow through the book and dismiss it entirely. I don't want a career in Software Development, and I definitely don't want a remarkable career in it. I want to have a fun, enjoyable job that allows me to grow - but more than just professionally. A job that knows about work/life balance and allows their employees to enjoy their weekends and time off and develop themselves within hobbies and other passions. My current job is exactly that, so time to start skimming!
Right away in the book's introduction, the author talks about getting excited about a career that is challenging and rewarding and motivating, oh boy. Sure, you don't want to have your job be drudgery, but if you put all your mental energy into your career, you won't have enough for hobbies, and man do I have a lot of hobbies!
The author reminds me of a friend of mine who is in software development and loves it. He codes at his job, mentors others with their code, and when he goes home, he codes more for his own side projects. He just loves software development! The only hobby that I know he has beyond coding is video games, so he is able to use almost all of his mental energy on coding, something he truly loves.
I really like what I do. I like dealing in data. I like finding patterns in data to make better decisions. But I don't love it as much as my friend, or the author does. When I go home from work, I don't jump back on the computer to read about the new database offerings or reporting applications. I want to read books, play board games or piano, cook something, write music or a blog post, practice with my camera, or catch up with one of my friends. Can the author change my mind? I doubt it.
The author, Fowler talks about knowing more than software development to be a true asset to the company you're working for. You need to know why they are building or using the applications you are developing or maintaining. I agree, this will allow you to go from a cog in the machine to someone who at least appears to care, and just might be more visible to others in the company! You could learn more than expected and in turn, might have a flash of insight for a new application, or a better way to tune the application you're working on.
Fowler, in the next chapter, talks about how you have to have a passion for software development, because if you don't, you're not having fun, and therefore not going to be fantastic at your job. I agree that it's better to pick a job where you like most of the tasks, but there's a large range between passion and enjoyment. As I stated above, I like what I do. I even find it fun! However, I have to be passionate about it to be good? Why can't I just be good at it, and leave it at that? I don't want to spend my free time just learning about what's new in data. I certainly shouldn't stagnate, and I learn plenty of things every time I go to a SQL conference, but either there are levels of passion, or I'm just splitting hairs with this guy. He also talks about how there's no way you'll be able to get your hands in different parts of an IT department if you stay at the same company, and that "many (smart) managers would see that as a strike against you." Really? I've been working at one company for 8 years now, and I've done report writing, database administration, helpdesk, deployment engineering and management, helped someone with HTML, helped someone with C#, did business analysis, did quality analysis, and worked with customers. It pays to work at a small company. You have to wear many hats. Yo get to see how the pieces fit. If you only work for large companies, yes, you could get stifled into one type of job, but if you're picking up a book to have some remarkable career, clearly you're already above the people who just want to do the tasks in front of them and then go home.
But, perhaps I am just splitting hairs. Maybe his passion is my "I like my job", or maybe he's trying to be more positive to get someone excited in taking their destiny into their hands. After all, I started in project management, and I didn't like it, even though I was relatively good at it. I thought about getting a PMP certification, but after trying to read some test prep, I really didn't like it and got an IT job instead. It suits me much better, and I am definitely better at my job here than I was when I did project management. This time around, it was much easier to answer all the questions and I even thought about how I can include more fancy data visualization practice, as so many reports that I write are exported to excel for raw numbers consumption, or reports to keep track of exam attendees.
I'd recommend this book for a younger individual who is in their first two or three years into IT after getting their degree. That ought to be enough education and experience to allow them the ability to answer the chapter questions and get them thinking further into their career.