Since this past year was about setting goals we're going to focus on what you do with those goals and how you get there next year. The theme will be Build Your Story and it will start in a couple weeks with an episode called Writing Your Story.
Best practices can help protect you from preventable errors and make it easier to reason about the code. Date and time libraries exist for a reason. That reason is because dates and times are complex to deal with programmatically, especially if they aren't the main purpose of your application.
Time and date management are complicated and nasty on computers, because they are complicated and nasty in real life. While we often think of being able to tell time as being simple, historically it hasn't been. We're continually having to work to keep our timekeeping devices accurate so that we can use their results for everything from manufacturing to navigation, encryption, and missile guidance. Network Time Protocol (NTP) is used to synchronize time over packet-switched, variable-latency data networks. The goal is to synchronize all participating computers to within a few milliseconds of Coordinated Universal Time (UTC).
Time is a complex subject and is heavily tied into our understanding of the universe. It has driven a lot more technological change and social change than you might think. Time is tricky to manage, but not bad, until you realize what's sitting atop this concept. In addition to distance and direction, time is probably one of the most important ways that we organize our reality.
Console applications are often the simplest place to start when learning to develop software for desktop and server environments, requiring far less ceremony to get going. Having a better grasp of what is going on under the hood with console applications may help you significantly in your day job, even if you are primarily a web developer.
CRUD in and of itself isn't bad. Most of the problems we list are process related. There are few technical problems in the list. They are more about misuse. CRUD is a way of conceptualizing the relationship of how data is stored and transferred.
Will and BJ are at DevSpace talking with Ed Charbeneau of the Eat Sleep Code Podcast about predicting the future of technology by looking at the history of technology and science fiction.
We've laid out some common problems you'll encounter in a distributed team along with what you can do to fix them. For each problem we'll talk about how to mitigate it for an individual developer, team leads or middle management, and upper management.
Jobs are no longer permanent and if you leave too early or too late, you can put yourself at a disadvantage. If you stay too long, your knowledge may become stale, whereas if you leave too quickly, you may look like a job hopper. It's also possible to leave a job where the problems can be fixed or to stay at one where they cannot.
Working with a group of highly specialized and opinionated people can be difficult and lead to very detailed conversations on topics not relevant or only tangentially relevant to the project you are working on. Know that you or your team may be lead off topic when in meetings and prepare for that inevitability.