I know that in my previous post, mocking API's in Golang, I said I would talk about testing, but I lied. To your face. I'm actually going to take a step backwards and talk a bit about the Golang environment configuration.
Whenever a programmer and a designer get together they need to agree on a common language. That often involves mock-ups, aspect ratios, points, pixels and work-flow.
What's the best way to learn programming for beginners? What makes the difference between the people who knock things out of the park vs those who struggle?
First, let me start be saying I believe that everyone should learn how to program, the same way everyone should learn to read and write. In today's world programming is the new literacy, so everyone should spend some time learning programming fundamentals. That said, there is a big difference between being familiar with a topic (know how to write) and being a professional (being a published author).
Being a programmer is a profession. It is a high-skill job that demands a large initial investment of time as well dedication to continuing education to stay at the top of your game - much like a doctor. Yet, programmers often lose sight of the fact that the skills we bring to the table are only part of the equation; like a medical professional, our "bedside manner" is incredibly important to our overall professional success. Why is that?
I would love our company to show more gender diversity, but where are the female applicants?
Ever heard of it? Apparently there is this mystical creature who is a master of his trade, knows all the tricks in the book and is generally just untouchable. He is the only one that can really solve the programming issues or even come up with any form of useful code in this particular programming language. Hmm... so if I learned to program Java that automatically disqualifies me from successfully programming in C? Or PHP? Or Visual Basic?
Learning to develop professionally involves a lot more than just writing code. Major required skills include keeping code stable long-term, sharing tasks within a team, and building understandable interfaces so your code can be connected to and run from other programs. Learning these skills is going to involve a lot of mistakes, but fortunately there are tools out there to help you get you ahead of the curve before joining your first team.