From The Challenges -QR Code GeneratorExploring the software engineering lessons we can learn from the solutions I've seen.
Hi this is John with this week’s Coding Challenge. 🙏 Thank you for being one of the 89,798 software developers who have subscribed, I’m honoured to have you as a reader. 🎉 If there is a Coding Challenge you’d like to see, please let me know by replying to this email📧 Welcome To Coding Challenges - From The Challenges!In this Coding Challenges “from the challenges” newsletter I’m sharing some of the common mistakes I see software engineers make when tackling the Coding Challenges. I’m sharing both the mistakes people make and some thoughts on how you can you avoid making the same mistakes when taking on the coding challenges or when writing software professionally. Sometimes we have to make mistakes to learn from them, somethings we can learn from other people’s mistakes, then make our own new ones! 😀 Recapping The QR Code Generator Coding ChallengeIn the build your QR code generator coding challenge the goal was to write a program to generate QR codes. A QR code (short for quick-response code) is a sort of two dimensional barcode. They were invented in 1994 by the Japanese company Denso Wave to label car parts. Like barcodes they are a machine readable optical image that can contain information. You’ve probably seen them used to promote websites on marketing material. Like this one: 🚨LAST CHANCE TO SIGN UP! Leaning Go Starts on Monday 🚨I’m running the Coding Challenges Learn Go By Building Live Course again starting on Monday (15th September). It is a live course that runs for three working weeks from September the 15th to the October the 3rd. During the course I’ll introduce you to ever aspect of Go that you need to build the following five real-world projects (based off five of my coding challenges): 🏗️ cat - By building cat you learn how to build and run command line programs in Go. 🏗️ sort - By building sort you learn how to use Go's data structures and control flow to implement sort. 🏗️ curl - By building curl you learn how to write network clients in Go. 🏗️ wc - By building wc you learn how to process text data and handle locales with Go. 🏗️ Memcached (Capstone Project) - By building a Memcached server clone you learn how to build efficient network servers in Go. Having built these five real-world applications you will be well equipped to take on new projects in Go! Check out the Coding Challenges Learn Go By Building Live Course for full details and to sign up. If You Enjoy Coding Challenges Here Are Four Ways You Can Help Support It
Feedback On The Solutions To The QR Code Generator Coding ChallengeI’ve pulled together this list from the hundreds of submissions I’ve been sent privately and the many shared in the Coding Challenges Shared Solutions GitHub Repo. Awesome Example of What To Do - Write A Great ReadMeLorenz Hänggi wrote a great readme for his QR code generator solution. His readme details how to build, test, run and debug his solution as well as providing examples of usage and details of the debugging elements he included. On top of that there are links to useful resources and a list of outstanding items. Everything someone else would need to understand and work on the project. Mistake 1 - Not Doing This Coding ChallengeA lot of the feedback I received about this coding challenge was how complex it was. People were surprised just how complex QR codes are and how detailed the engineering behind them is. I agree! Learning how to generate QR codes is a great way to learn about dealing with binary data, bit packing, error correction algorithms, algorithms for drawing the image and calculating the penalty patterns and finally rendering an image to screen or file. Mistake 2 - Using a QR Code Generation LibraryThere is no such thing as cheating at Coding Challenges. If you solve the challenge and you stretched yourself and learned something, that is a win! That being said, if your solution is under 10 lines long and uses a third party library you’ve probably cheated yourself out of a learning opportunity. Sure you shouldn’t build a QR code generation library for production, but as a learning exercise if you do you’ll learn about bit packing, error correction and image rendering that you might need to develop a great solution in your professional life. Mistake 3 - Not Writing Unit TestsThere’s a lot of complexity to generating QR codes, but the good news is it’s built on several smaller and simpler elements. Like a lot of software systems are. It’s always easier, faster and useful to test these elements individually to know they work rather than to try and debug the whole system. Unit tests can help with this. Mistake 4 - Not Relating The Code Back To The StandardHang around any group of software engineers for long enough and you’ll hear us debate when to use and not use comments. Despite that debate, most of us would agree to use comments to detail why the code does something the way it does. That is particularly relevant when implementing a standard. Where the standard mandates a specific technique, algorithm or value add a comment in the code noting the specific part of the specification it comes from. Request for FeedbackI’m writing these coding challenges and this new from the challenges series to help you develop your skills as a software engineer based on how I’ve approached my own personal learning and development. What works for me, might not be the best way for you - so if you have suggestions for how I can make these challenges more useful to you and others, please get in touch and let me know. All feedback greatly appreciated. You can reach me on Bluesky, LinkedIn or through SubStack Thanks and happy coding! John P.S. If You Enjoy Coding Challenges Here Are Four Ways You Can Help Support It
Invite your friends and earn rewardsIf you enjoy Coding Challenges, share it with your friends and earn rewards when they subscribe. |
Don't miss a thing Confirm your subscription Hi there, Thanks for subscribing to fitgirl-repacks.site! To get you up and running, please confirm your email address by clicking below. This will set you up with a WordPress.com account you can use to manage your subscription preferences. By clicking "confirm email," you agree to the Terms of Service and have read the Privacy Policy . Confirm email ...
Comments
Post a Comment