Book Image

Skill Up: A Software Developer's Guide to Life and Career

By : Jordan Hudgens
3 (1)
Book Image

Skill Up: A Software Developer's Guide to Life and Career

3 (1)
By: Jordan Hudgens

Overview of this book

This is an all-purpose toolkit for your programming career. It has been built by Jordan Hudgens over a lifetime of coding and teaching coding. It helps you identify the key questions and stumbling blocks that programmers encounter, and gives you the answers to them! It is a comprehensive guide containing more than 50 insights that you can use to improve your work, and to give advice in your career. The book is split up into three topic areas: Coder Skills, Freelancer Skills, and Career Skills, each containing a wealth of practical advice. Coder Skills contains advice for people starting out, or those who are already working in a programming role but want to improve their skills. It includes such subjects as: how to study and understand complex topics, and getting past skill plateaus when learning new languages. Freelancer Skills contains advice for developers working as freelancers or with freelancers. It includes such subjects as: knowing when to fire a client, and tips for taking over legacy applications. Career Skills contains advice for building a successful career as a developer. It includes such subjects as: how to improve your programming techniques, and interview guides and developer salary negotiation strategies.
Table of Contents (5 chapters)

In this chapter, I'm going to discuss the concept of cramming versus consistent study. And don't change the channel if you're not in school, if you're a developer, or if you want to learn software development the learning never ends.

On an average, I typically go through over a dozen books at the same time and around 4-5 various online courses because the deeper I get into development, the more I realize how much more I really need to understand.

With that in mind, I think the topic of cramming versus consistent study habits should be beneficial since the way that we study is just as important as the volume of how much we study. Most of us have been in the situation where we put off studying for too long and before we know it an exam is upon us that we have to cram for. If you can remember back to the last time that you crammed for an exam or project, how much of what you studied can you remember today?

If you're like me, probably not much. While I was in college I was very bad at this and ended up cramming for many of my midterms and finals, with mixed results from a grade perspective. However, once I got to computer science graduate school at Texas Tech I ran into a problem—cramming didn't work at all.

Software development concepts build upon themselves, so what was taught in the Fall semester would be the foundation for even more complex topics that would be discussed in the Spring. In the Fall, I would learn about logic programming and in the Spring, I'd have a course where I had to build a production application using the Prolog programming language.

Using cramming as a study technique resulted in me having very poor retention of what I was learning, which meant I had to go back and relearn the topics that I had already forgotten from the previous semester. I don't have to tell you how stressful this made my academic life, not to mention the fact that I was working as a full-time developer at the same time. So, I knew that something had to change and I put together a system for helping me retain what I learned each day through a consistent study pattern. Much like a function in programming, my system for consistent study takes in a few parameters:

For scheduling I created a to-do list, segmented by day, for what I needed to study, which included academic papers, books, and watching online lectures. I put these in a drag and drop to-do list on Basecamp. After I studied a particular item I would drag it up to the next day's to-do list so I would have a visual cue that I was done for that day.

For me, I would procrastinate studying because staring at the list of the books I had to read was intimidating, and this was mainly due to the fact that I didn't set any practical goals for studying. If you stare at a Discrete Mathematics textbook and tell yourself to study, it's natural to want to put it off; however, if you set small goals, you're less likely to put it off.

With that in mind, I'll put a note, such as read 3 pages of my Information Retrieval textbook, and 3 pages doesn't sound nearly as scary as the vague "just study" mindset. The interesting result in making small, manageable goals for studying is that not only does it help curb procrastination, but typically I will also read much more than the 3 pages. There have been plenty of times where I set of goal of a few pages of a book and ended up reading a few chapters.

With all this being said, there are times where I plan deep work study sessions. In one of these sessions I will set aside 2-3 hours of time to sit down, without distractions, and work through a complex topic. However, I always limit the time to no more than 2-3 hours per day, and I will usually not study any other topics on these days since I'm usually mentally drained by the end of them.

I hope that this chapter has been helpful and will help you develop your own system for studying so that you can retain when you learn and be able to use it when it matters most.