It was around this time last year that I began to take the idea of learning to code seriously. “Sure”, I thought. “I mean… why not?” For anyone with even a little bit of experience learning how to code, it goes without saying that it is quite an undertaking at the very least. But it is also fascinating. And, to be very honest, extremely frustrating at times. Never in my life have I questioned my own intelligence so continually.
Of course this is only natural when learning anything difficult. What I noticed most was the pitfall of attempting to learn to code both quickly and well. This is, of course, a really dumb idea. There is no shortcut to the deep exposure required to learn a new and valuable skill save for increasing your exposure. This increase in exposure seems to be the thinking behind the majority of coding boot camps. But I would say they can never be anything more than a mere introduction to the world of software development, and a very brief one at that. My own experience in speaking with a graduate of one of the better known (to remain nameless) camps said he left with an immense sense of disappointment and felt he could’ve learned just as much (if not more) by himself and certainly for less money. He also spoke of the student to teacher ratio being so unrealistic that the instructor actually told students to “get together and figure it out themselves”. I’m sure that this is by no means the norm for this business model but it does seem common enough to make you think twice about making such an investment.
Anyway, here I am, 1 year after starting a software development course with an online mentor. I have learned a lot but I am still at a point where my head is spinning. This, so I’ve heard, is quite common. However, I do feel confident that I am much more capable as a developer than I was when I first started. How capable, exactly, is a different question. I have to admit, though, that if it weren’t for my busy schedule being a father of 3, running a small business by myself and working part time on weekends when needed, I would be much further along. But, so it goes. Time is the most precious of resources and it is extremely limited. Better to take the long road than crash and burn on the short one.
What I feel I’ve learned most is the approach necessary to being a good developer. That is how to think like one, the kinds of questions to ask and, probably most importantly, the deep sense of patience and objectivity required to make progress. Along with these useful qualities, I’ve also noticed my mind is sharper and more organized than before. I’m also reading a lot more, too. Reading is a habit I used to love but, alas, how the responsibilities of fatherhood and business can part us from the habits that require time and concentration.
One thing I’ve noticed as a consistent truth in software development is that there is an endless and continual process of study involved. Continual learning you could call it. This is simply the nature of the work. To be a good developer, you have to be a good student. And, above all, it takes time and patience. Time to allow your understanding of things to formulate. Patience to not interrupt the process or try to take a short cut. Doing that will almost always leave you worse off than you were before; and generally a lot more tired and frustrated, too.
So, what’s next? I’ve invested the past 5 years in building a successful if small business and I must say that, now that the long and stress filled haul of building it up is essentially over, I am quite happy with the level of independence and freedom my lifestyle currently affords me. While I could potentially make more income working for a company as a developer (assuming I could land a job) I have my doubts as to whether it would be worth it in the end. And I would hate to find out that it wasn’t after making such a serious commitment/throwing away what I currently have. So why in the heck am I working so hard to learn software development?
This is a question I have struggled with to be quite honest. Why am I exhausting myself cognitively when I could be out running or cycling in the mountains? Why intentionally subject myself to stress and challenge when I don’t have to? Why work so hard on this stuff? I’ve been told it’s my British blood (my father emigrated to the US in the early 70’s where he met my mother) i.e. a persistent stubbornness that simply cannot be defeated. Maybe so.
It wasn’t until very recently that I had a real answer to this question that wouldn’t make people think I’d gone completely sideways. The answer is this: I want to teach software development to Japanese students.
You see, my time as an English teacher has been good and all. It’s paid the bills and allowed me a lifestyle I wouldn’t possibly be able to equal if I’d been doing anything else for work here in my area. But the fact is I often worry about my future and the quality of life, to say nothing of financial well-being, I may be setting myself up for. That is, do I really want to be doing the same work into my 40’s and 50’s and only that work alone? The answer is no. Life is too short and there is far too much to learn and do instead of wasting it in monotony and repetition. And, while I enjoy working with students of all ages, I want to do more with the time I have left. I want to be of greater and more meaningful service.
Since the day I landed here in Japan back in December of 2007 my life has been a continuous and utterly overt effort to better my immediate situation. “Yes, but isn’t this true for everyone?” you may think. Ideally, yes, this should be true for everyone but the fact is the great majority of us, especially those who remain in the countries where they were born and raised using the same language they’ve used since earliest childhood, rarely face the level of challenge required to push you into completely changing your life. Most of us will make only the effort necessary to reach some arbitrary level of familiarity and comfort and then generally coast along enjoying ourselves. And that is because completely changing your life can be rather uncomfortable; especially at first when you have yet to build the necessary momentum to give you the impression that the sheer amount of work you are doing is normal. That is, the start is the hardest because it’s so tempting and easy to quit. Once you’ve been at it awhile, though, the opposite is true. After investing huge amounts of time and energy to progress, there is a tendency to feel it is simply too much to throw away after having come this far. And so you continue, even if it’s hard. Struggle is the word; pure, unadulterated struggle. It has and always will be an intensely individual process. One full of uncertainty, doubt, confusion and very often narrowly avoiding giving it up all together. Instead of giving up altogether I take breaks where I keep my mind from thinking about what it is that is currently challenging me. Come back to it later.
That has been my life over these past 12+ years. Struggling to find work and create a new life in Japan. Struggling to finish my Bachelor Of Science degree while working full time and helping to raise my first infant son. Struggling to learn Japanese well enough to open my business. Struggling to open my business and then struggling some more to make it profitable. And, finally, struggling to learn software development, a struggle I am still very much involved in but somehow enjoying.
And now I can see where all this struggling is taking me. It’s taking me to a position where I can use the skills I’ve earned and learned to help more people change their lives. Teaching English, as mind numbing as it can be sometimes, has cultivated in me the ability to break down and simplify concepts. To read people’s ability and level of understanding. To keep the simple, even boring somehow interesting. Learning the Japanese language has made me functional in this society; as trying and frustrating as it can be at times for non-Japanese people. It has allowed me to connect with more people and to be prepared for more opportunities when they come my way. Lastly, beginning the path of learning software development has put me on the way to mastering a skill that is incredibly valuable: software development.
Now, if I were able to create a way to combine these three skills of teaching, Japanese and development ability I could potentially help a lot of people make very big changes in their lives. And this is what I intend to do but I have to start small. Yes, start small and iterate. Get feedback. Sharpen my skills. Learn the market. Find the weak points and the knowledge gaps and then fix them with a course that brings people more value than they can shake a stick at.
There is a great book by Robert Greene which I think anyone who takes their precious human life even remotely seriously should read. It’s called Mastery and is one of the single most well written expositions on the attainment of skill and understanding I’ve ever read. I say this because it focuses so much on what a blind and uncertain struggle it can be and on how much both you and your general approach to both your art and your life will change along the way.
There are things in life we simply cannot know beforehand. And yet, we awake each day with nothing more clear than an inclination to keep moving forward; to somehow progress. It really is kind of bizarre in a way. If you really think about it, at least. But it is helpful to read the stories from history that tell of the path to accomplishment and how things just kind of “came together” at some point. But, of course, nothing really just “comes together” in the sense that phrase is generally used. As Jeff Bezos is quoted as saying: “Most overnight successes tend to take about 10 years”. And, for anyone who has iterated through the emotional maze of starting a business, creating a product or mastering a difficult skill, you will know how true this is.
For me, my intention has always been to be helpful. But there is very often a high barrier to entry in regard to being REALLY helpful. You must struggle and overcome a lot before you can help others do the same.