今日推荐开源项目：《快速传输 snapdrop》br/> 今日推荐英文原文：《Three Programmers, Three Paths, One Road to Glory》
推荐理由：这个项目提供了一个方便的文件传输方式——只要在设备上打开这个网页，就能在这里选择这个网络里其他打开了这个网页的设备进行文件传输。而且这个项目在传输数据的过程中没有引入第三方，同时 web 版使用了 WebRTC 来提供加密传输，从而保证隐私不会泄露。如果需要频繁使用的话，也可以选择使用他们在各个平台上的 app。
今日推荐英文原文：《Three Programmers, Three Paths, One Road to Glory》作者：Zachary Minott
Three Programmers, Three Paths, One Road to Glory
Which path will you take?
Three Programmers on a Level Playing FieldImagine three different junior programmers, all working in the same company with relatively similar sensibilities. Each one makes the same $60k per year starting salary, has similar educational backgrounds, and possess the energy of anyone just starting out.
Let’s give them some names: Nathan, Jack, and Devin.
Nathan goes about his career as he always has. He punches into work, completes his tasks for the day, and his most exciting part of the day is when it ends, so he can come home and relax. He thinks he’s happy but sometimes complains that nothing ever changes for him. His head is filled with pestering “what-if” questions and he wonders how long he’ll have to wait until he can get a promotion or simply ascend to a mid-level developer. He’s a good programmer, but he sticks to confidently doing what he knows how to do.
Jack starts making a few poor choices but nothing crazy. His mind often wanders at work and would intermittently get distracted by his phone or other internet browsers he has opened. He focuses on getting the bare minimum requirements done and lives by the “if it works, don’t touch it” programming philosophy. He drinks red bulls at his desk every day to help him focus and regularly indulges in an unhealthy diet of pizza and chips. He’s a great coder, but his knowledge of that fills him with a sense of pride that keeps him from seeking the help of others, asking too many questions, and sharing information with his colleagues. Needless to say, he still gets his tasks done on time and still meets his deadlines.
Devin decides to start making subtle, positive changes. He starts off his days reading at least ten pages of a non-fiction book that may help improve his career and coding skills. He decides to start meditating and even tries brushing up on his coding skills with an online course for 30 minutes a day. He doesn’t hesitate to ask questions at work and he decided that it would be a good idea to send his boss a progress report twice a week to showcase what he’s got done and what he still needs to do. He doesn’t do anything rash and he makes no grand acts — they’re just simple things anyone could do on a consistent basis. He knows he’s a decent coder, but realizes that he could always be better and so he is constantly looking for ways to improve.
3 Months LaterYou wouldn’t be able to see any obvious differences between any of these individuals in regards to their overall performance and skillset.
- Jack is enjoying his career with his ability to get things done quickly and deliver at fast rates.
- Devin continues to find ways to constantly sharpen his skills and mind in the healthiest ways he can surmount.
- Nathan simply continues to do as he always has and just shows up to work because it’s his job to do so.
9 Months LaterIt’s at this point that each developer has started displaying noticeable changes in their situations.
Jack is starting to feel a little bit clouded in the mind and is becoming more lethargic as a result of his unhealthy diet. He’s ramped up his consumption of Red Bulls to two, maybe even three a day as he doesn’t experience the same energy boost as he used to. He’s still getting stuff done, but it’s not getting easier. He’s starting to feel the drawbacks and time delays of the messy yet quick code he wrote over the past months and is starting to feel like he’s lagging.
Devin, on the other hand, is thinking very clearly. He’s shown an innate sharpness and meticulous approach when writing code. He’s not moving any faster than Jack, but he’s writing more quality code than he ever has before and he’s been able to deliver on more advanced tasks. He has developed relationships with the leaders of his company — they have begun to recognize the progress he’s made through his transparency and ability to communicate what he’s been working on.
Nathan is still trodding along, in the same exact place he was before, except he’s a little bit more bitter this time.
18 Months LaterDrastic changes can now be clearly seen between the three programmers.
Jack’s overwhelmed with backlogged work that he’s unable to get done on time. Management is complaining about how his code keeps breaking and that it’s taking far too long for him to modify and identify errors in his code. Other programmers are having trouble discerning what his code does when they come to review it. His performance rating has fallen drastically and mentally he’s not all there. His mind is clouded, he’s tired all the time, and he is unable to properly map things out in his mind as he used to do. He gets distracted easily now and maybe only has one to two productive hours a day. Where at first he thought he was thriving, Jack’s programming career is now in peril.
Devin’s daily positive habits over the past several months have proved to be fruitful. He’s now quickly ascended the ladder to become a technical lead and has tight-knit relationships with all the leaders he looks up to in the company. He produces quality work very regularly and isn’t afraid to share information and mentor those that are below him and even above him. He’s still growing and still changing, but his future in tech is looking extremely bright.
Nathan still hasn’t changed much but, to him, his situation appears to be something that he simply can’t control. He’s actually mystified by Devin’s performance and believes it’s something he wouldn’t be able to replicate.
The Moral of the StoryMany people falsely believe that if they simply stick around long enough to become “more experienced,” they’ll linearly ascend through the ranks of programmers and technical talent.
That’s simply not true.
As we see with these three gentlemen, it’s the apparently insignificant things you do on a consistent basis that, over time, sculpt you into the person that you either want to be or don’t want to be.
Just increasing your awareness of those tiny things helps you to realize what you need to improve upon.
As I regularly preach, great programming talent is produced through a commitment to lifelong, deliberate, learning and practice in both soft and hard skill subject areas.
If you are going to achieve excellence in big things, you develop the habit in little matters. Excellence is not an exception, it is a prevailing attitude. — Colin Powell, Former US Secretary of StateSimply recognize the person that you identify with the most. It’s best to be brutally honest with yourself.
Are you really the Devin? Or are you more like Jack? Most people tend to be like Nathan and just sit around waiting for life to happen.
Remember: When it comes down to it, it’s your decision to make things right and make the change for the better. Your value increases as a result of the small things that you do very regularly.
So ask yourself, which path do you want to choose for your long-term programming career?
- Nathan: The Path of Neutrality
- Jack: The Path of Instant Gratification
- Devin: The Path of Self-Transformation