今日推荐英文原文：《Why Hackathons Make You a Better Developer》
推荐理由：几年之前你的名字电影里那个传说的日记 APP 估计有不少人都记忆犹新，既然如此自己把它创造出来就好了。这个项目是根据那个电影中出现的 APP 实现的安卓版日记应用，目标自然就是为了和电影里的应用一毛一样了，尽管 Google Play 上的链接已经撤掉，但是时至今日实现这个想法的成果也有不少，运用所学实现自己曾经喜欢但是做不到的事情的感受真的很好（预感到下一个被实现的应该就是天气之子的项目网站了）。
今日推荐英文原文：《Why Hackathons Make You a Better Developer》作者：Ilya Lyamkin
Why Hackathons Make You a Better Developer
Pressure makes better programmers, fasterOver the course of my life, I’ve participated in more than 20 hackathons, so I might be a little biased on them, but on the other hand, I know a lot about how they can be useful.
Let me start by explaining what a hackathon means to me. In general, it’s an event of short duration (usually one or two days) where people come together to creatively solve problems. Hackathons can be themed, where the projects are confined to a particular problem such as food sustainability or returning citizens.
Reasons to Participate in HackathonsNow that we have covered the definition, we can start with the reasons why you’ll become a better developer by participating in hackathons.
Extreme programmingIt’s very easy to forget about speed while working with Scrum processes, so let’s bring the former back. With short deadlines and ambitious ideas, hackathons teach you how to code fast and, more importantly, think fast.
If you’re wondering why it’s that important, the reason is that you’ll know your limits much better and will be able to push them even further after the hackathon. You’ll not only be surprised by how much you have achieved but also understand your areas of growth.
Learning how to estimate your efforts betterDue to the limited time, proper estimation is essential for your success. If your estimation is incorrect, you won’t be able to achieve what you planned in time. The truth is, at a hackathon, you’ll notice that your estimations are far from perfect. Use this fact to your advantage and adjust your estimations so that it doesn’t happen at work.
Creative thinkingHackathons teach you how to solve a known problem creatively. In the first stage, ideation, you have to come up with a unique and fresh idea. If you think that’s all, actually, this is just the beginning. Now it’s time for execution, and you have to be creative at every step of the way because you’ll never have enough time or well-defined processes. Something will always break most unexpectedly, and you’ll need to find a viable solution to be able to ship the product in time.
Learning new technologyHackathons are perfect places to learn something new. If you use React.js at work, try Svelte. Writing back-end with Java? Learn Kotlin! Or completely switch your stack from front end to back end, and the other way around. Maybe you want to get into VR. This is your chance.
NetworkingHackathon is an excellent chance to talk to fellow developers and like-minded people. You can get a big picture of what they’re working on and which tools they’re currently using. Think of it as a conference where you also have to code.
Iteration-based approachAt hackathons, you should focus on building a minimum viable product, which means you should be able to drop parts that are not required and then iterate over it. That’d allow you to ship a product where you can show something to people even if you can’t finish this cool new feature in time.
Learning how to split tasks in the best wayIf your team consists of four or five people, you have to make sure your team works as one organism and utilizes the abilities of each team member. Be ready to communicate with your team actively and split the product into several independent pieces. Without proper separation of concerns, four people would work as two with clearly divided tasks.
Shifting focus to bring business valueIn our work, you can easily forget why you’re writing code and what value it brings to the end user. On the other hand, at hackathons, you’re solving real-world challenges — and thinking about them in the first place. It shifts your vision from just code to a big picture of what you’re trying to archive.
WorkshopsIt’s popular to have workshops that you can attend at the time of the event. They could be about new technology or about soft skills like improving your resume. They can be highly beneficial if you have just started your career or want to learn something new.
Getting feedbackHackathons are one of the best places for validating your ideas. In your normal life, it’s hard to find someone who will be both honest and willing to spend time reviewing your ideas. Other options include using your personal network or paying for ads. At hackathons, you get all of that for free, and from people like you.
Giving feedbackI know a lot of people who find joy in helping and teaching others. By doing so, you can learn what others are doing and, if you have expertise in that area, help them. The best way to grow your network is to be helpful, so actively seek out these opportunities.
Having funUltimately, this is what hackathons are all about. Don’t worry if you’re not going to be able to present a perfect product, just have fun. If your hackathon takes place in a different city or country, take advantage. Get to know the local culture and engage in unique experiences.
How To Get StartedIf you decide to give hackathons a chance, there are several resources to check out.
The first is Major League Hacking (MLH). It’s the official student hackathon league that runs over 200 weekend-long invention competitions.
Second, make sure to go over Junction Hackathon and TechCrunch Disrupt Hackathon. They’re one of the biggest independent hackathons in the world.
Last but not least, check Meetup to find local hackathons in your city.
ConclusionI hope I convinced you to take a look at hackathons. It would definitely not be easy to code for two days non-stop, but the results will pay off. You’ll learn a lot about yourself and your limits, find out how to estimate and split tasks, and understand how to apply your skills to solve real-world challenges. And don’t forget to have fun.