In college, one of my professors told a class that the average developer writes on average 25 lines of a code a day. He also recalled managers watching over his shoulder while he stared blankly at the screen, which would lead to the inevitable “Why aren’t you doing anything?” question. He would simply respond with a “I’m thinking.”
As developers, we have to balance a myriad of skills and considerations for every block of code we right: How long will an approach take? Is the code correct? Is it efficient? Will it make sense to another developer? Will it have side effects? What business rules should I consider?
Some days, you might not write any code. Diving down into the depths of your codebase, you might get lost searching for some bug or performance bottleneck for hours, days, or worse. Unfortunately, the time-worn cliche “Time is money” holds true for most developers, so in spite of all the development speed bumps, we have work that must be finished. And said work typically has a deadline.
So here’s a list of performance gains not for your code, but for you. You may not be able to eliminate the need for investigation or consideration, but maybe you can speed up everything else. Continue reading “5 Tips for Speeding Up Development”
I recently found myself needing to understand the difference between SAML and OAuth2. My need led me to a great article about it: https://www.mutuallyhuman.com/blog/2013/05/09/choosing-an-sso-strategy-saml-vs-oauth2/
When I read Somnez’ Soft Skills book, I found the section on motivation very interesting. Somnez compares internally motivated people vs. externally motivated people, and raves about how hugely beneficial it is for that motivation to come from the inside. It’s not a new concept; google intrinsic vs extrinsic motivation and you’ll find plenty of psychological studies and papers. That being said, motivation’s importance on both career and education cannot be overstated.
The beauty of working with passionate, driven developers (or just passionate people) is the practically contagious motivation that they radiate. It drives them to seek self-improvement, leading to a stronger knowledge base, which can then passed along to other members of the team. It embolden’s them to think outside of the box, and propose unique solutions to typically complicated or misunderstood problems. But this is only true of motivation emanating from the inside. Continue reading “Motivation: A Developer’s Greatest Tool”
If you’re building your first, or even fiftieth, REST API, this is a great resource for best practices:
Your data model has started to stabilize and you’re in a position to create a public API for your web app. You realize it’s hard to make significant changes to your API once it’s released and want to get as much right as possible up front. Now, the internet has no shortage on opinions on API design. But, since there’s no one widely adopted standard that works in all cases, you’re left with a bunch of choices: What formats should you accept? How should you authenticate? Should your API be versioned?
While perusing http://carlcheo.com, I found an awesome video animating how sorting algorithms work:
And here’s the rest of the post:
40 Key Computer Science Concepts Explained In Layman’s Terms
Developers thrive on condensing down complex concepts. Entire processes become single applications, responsibilities become classes. It’s practically our job description. So it only makes sense that we would take the broad, abstract ideas, condense them down to a few words, and then further simplify them through abbreviations and acronyms.
In my opinion, making the mental jump from acronym to concept is much more difficult when you don’t know what each letter stand for. So here they are: the most common acronyms I’ve had to learn as a developer.
You don’t have to know them all by heart, but having a general idea what each stands for will help you the next time they spring up in a conversation.
Let me know if I missed any important ones :). Continue reading “Acronym Affinity: 100+ Useful Developer Acronyms”
Scene: It’s midnight. We slowly pan over a sparsely filled library. We zoom in on a tense, frazzled Computer Science student. With a practiced hand, he fills his code with print statements and debugs his code for umpteenth time. He steps over and over lines of code, struggling to find the reason why his code silently fails.
He could write some tests, but what’s the point? They’re bound to be as flawed as his understanding of his code, right? Besides, it would take time he doesn’t have to write all those tests. Left to his devices, he struggles for another hour or so before realizing he had an off-by-one error on one of his giant “for” loops.
I’m sure I’m not the only one who’s been in this situation. Rather than deal with the extra work of writing tests, you just decide to wing it. It could save you time, but on the other hand, it could cost you some painful nights of debugging some unfortunately timed bugs. So what exactly are the pros and cons to testing your code? Continue reading “Testing Your Patience: The Pros and Cons of Test Driven Development”
I know this is a little late, but since we just experienced a leap year I thought now would be a good time to cover my top 4 tips for working with dates and times. Most of these tips come from painful lessons, some of which I learned the hard way, some of which I was fortunate enough to learn second-hand.
Continue reading “Date and Time Management: 4 Tips for Preventing the Future From Catching Up With You”