At Cerner, we engineers work really hard to deliver innovative health care solutions. However, we also play (and hack) hard too!
Among a list of Cerner's internal hackathons is a programming competition called 2^5. The rules for this competition are fairly simple: for 32 days you can make one submission per day that's 32 lines or less of code.
Cerner Engineering@cernerengToday, we celebrated the end of our 2^5 Programming Competition themed Engineering Productivity where our engineers shared ways to be more productive through small snip-its of code, 32 lines or less, over the last 32 days. We had submissions in 59 different languages this year!20:43 PM - 25 Oct 2018
This was my second year participating in the competition, and I gotta say... It's super fun. Here are a couple things I learned this year during the competition:
Ever deploy an enterprise application that was 32 lines or less that you never had to maintain? Me neither.
However, it's incredible how you can make simple applications using 32 lines of code. Take my submission that uses Vue as an example. Todo App is a pretty classic app to write as a
hello, world! replacement for web development.
This little app just uses Vue and bootstrap to create a small application to list out all the things you have to do in a way that looks somewhat visually appealing. Will it sync up to the cloud? No. Was I able to add a button to each item that would allow you to delete it? No (would have made the submission more than 32 lines). Is it a good starting point for learning two extremely popular web technologies? Yes indeed.
Even if your 32 lines doesn't really do anything that's "cool" or "noteworthy", it can still act as a foray into expanding your knowledge. That's what a lot of my 2^5 submissions were meant to help me do: learn things I didn't know before.
Don't believe me? Just look at my submissions:
But did you know that you can use Kotlin to create web services as well? I certainly didn't until I found ktor, a Kotlin web framework for making web services.
For those of you who might use Kotlin to write applications, this is really great, as it means that your whole technology stack can be written front-to-back in Kotlin!
I wasn't going to write about Kotlin without giving at least a little bit of attention to the Apple fanboys/fangirls out there!
If you write code in Swift already, you probably know that you can write iOS and macOS applications using Swift and Apple's native libraries. However, did you also know that you can create a web service using Swift as well?
Apple engineers can now also write their whole tech stack in Swift as well! All of this innovation is great news for developers because they don't have to make investments in multiple languages in order to perform the work they need to do.
Of course Kotlin and Swift aren't the only languages that could bode good news for developers. I didn't have time to make submissions in all these other languages, but .NET Core is another great option, as well as Dart for all you Flutter enthusiasts out there.
If you look hard enough, you'll probably find a way to create a web application or microservices using your favorite language. Is it going to always be practical to do that? Not necessarily, but it's possible at least!
When I graduated from college in 2014, 90% of my skillset involved experience in Android, WPF, and Java services. C# and Java was really all that I knew.
Looking back on the last few years of my career, I have learned so many different langauges. I have all of my submissions from the last two years in this Github repo:
Submissions for 2^5.
Assume MIT license for all submissions.
I went from knowing... Really only 2 languages to learning a little over a dozen in a couple of years!
Many of the languages I know now seem to really only have gained traction over the past couple of years: Go, Dart, and Elm have been in active development for quite some time, and each have grown in popularity drastically since I graduated.
Even if I haven't really developed full-fledged applications in these languages, I have at least had opportunities to learn them. Participating in competitions like 2^5 gives me an chance to become a little more diverse in my skillset.
Thanks for taking the time to read this, and I hope you guys enjoyed all the little snippets and stuff I shared today! If you have questions about anything I've written about, or about the code I wrote, drop a comment!