While you can argue that technical skills have diminishing returns, but I do really want to focus more on it at this point of my life.
I see it in HN, Reddit, everyday people make very cool projects and I wonder what it will take for me to reach that level?
Anyway, I decided to buy the book "Engineering a Compiler" and set a goal to actually finish it. I guess that's my soul searching direction will go for now.
This is true, particularly, if you work full-time, and your job is not connected to the subject of your passion. You will have few hours in the evening, but for a hard subject you may not have enough energy.
You can try remote work, it worked for me. Currently, my client allows 2-3 days a week of working from home, and also now I’m looking for my next place for a full remote position. I save 1.5 hours on commute, 20 mins on lunch. So I have additional time and energy to focus on maths, building things, and running.
There is an additional barrier to move into a different or more advanced field: most companies want to hire people already experienced in particular areas. It will be very hard to convince a company that you can learn fast and contribute and also that they can already benefit from your current skills and technical maturity. It looks risky for them, they may have relevant candidates, or do need such expertise right now.
Our industry love talking about fixed vs. growth mindset, how crucial is the latter. At the same time, the hiring at many companies is a vivid example of fixed mindset towards candidates: your current skills matter infinitely more than you potential. The thing is it can also be hard to convince them that you actually can acquire required knowledge fast: you know, everyone says to be a “quick learner” in their CV.
I think your situation is typical and for some people the only solution was to start their own business eventually, and outplay the system.
So, focus on improving yourself in the evening and keep trying to find your way in!
Things that I see that are cool really solve a problem. I am finding that I am doubling down on looking at the problem that is being solved before I deal with tech. Tech is critically needed and you learn useful stuff on the way, but what I am learning, repeatedly, is that the really cool stuff is the product of the clear customer value and delivering on the underlying tech.
It is not supposed to happen that way. Only in dreams or under the right stellar constellation matching optimal circumstances. In other words: when being lucky.
Mastering knowledge is a long process. Knowing a technique is one thing, applying properly in practice on a daily basis in combination with other aspects is the next, knowing when not to use it or in what combination or in place of something else in a given messy situation having specific set of resources and time limits is the ultimate one. But that ultimate one is unique and we will find no recipe for that, it is our task to come up with it.
Guides, wisdom, advises, tips and tricks coming from books and others are inherently limited to the scenario where those led to success, they have their limits of applicability not always captured properly and explicitly - actually very seldomly done so - and may not be relevant anymore as the world evolves. We have to try to apply it ourselves, apply, check, repeat, improve. This is lengthy an can only be done in practice in real (typically messy) situations.
I did some 'soul searching' before like the author of the article, had ideas and plans what to complete and master, but those had weak results due to two facts: - we never make things alone, each achievement is carried out as a team effort, - to reach a practically suitable level of knowledge it must be acquired in practical situations, hypothetical scenarios in trainings, be it given or self created, are only good for the very first steps of the learning process, to be a beginner, we need actual paid tasks to master how to make something that we can be paid for (except trivial tasks).
The soul searching is good still, distance ourselves from the everyday hamster wheel to see the perspective. Easier to navigate if we have a birds eye view than being in the dirt all the time. Still, we will get down to carry out things in the dirt eventually.
Also don't forget to believe in your self. Many of the cool projects are - when taking a closer look - more like stub projects. It has a really cool part but it's oftentimes incomplete. So no crazy technical skills are needed, it's more about interested, being ready to explore something new and being pragmatic about solving things...
While some CRUD is still necessary, most of that is abstracted away, we still have to be schema conscious, but since 1. Our team is dedicated to one back end product. 2. We have a lot of resources (and demand), we had to spend a lot of time thinking about more complex (and interesting) problems with scaling, distributed computing etc.
It's a blessing for me because I'm sure if I was in a place where I need to be responsible for all part of the stack the job would turn into a mundane grind. But it's not just for work, I've been able to turn some of the stuff I learned into private projects and make them more interesting and less CRUDly.
So true. I think it's exactly because of this that many professionals tend to reach a level and then expand their knowledge at the margin.From today's vantage point, it's incredibly difficult to tell which jobs will be around in 10, 20, 30 years' time. That makes me feel like learning new skills isn't a choice, it's a way to stay in the game for the long run.
Except that I don't think that the way you learn a bunch of skills in college still works when trying to learn deeper into one's career. It's not just the time, but the relevance.
I spent the last two years picking up skills in natural language processing, and the way I went about it was very different than reading intro books (personally, I found intro books least helpful).I've written about it on Medium, in case it's of interest: https://towardsdatascience.com/learn-nlp-the-practical-way-b...
A piano is simply a tool that enables a pianist to bring a dream to reality.
A programming language is simply a tool that enables a programmer to bring a dream to reality.
Ask yourself this:
“Am I a dreamer and a doer...or have I just been doing?”
And then just pick the one that most excites your curiosity.
The process of deciding what to learn next is a type of skill that you can learn. And potentially it's valuable to learn that skill if you feel bored.
The risk of just picking a book and committing to it is that it may not be the right book for you, or the subject for you right now, or any number of other things.
Anyway it's worked for me; your mileage is likely to vary :)
As far as personal projects go - the challenging, the better as far as I’m concerned. But what really matters is that the end result is something that excites you and keeps you going when the project goes through the inevitable dull, trying patches.
got something on my mind and you might be of help
In the last couple weeks I've decided that I too wanted to level-up on my hard skills but away from CS. I've never been too enamored with trying to sell a product or service that had a lower barrier to entry for competitors. Too much convincing and pitching and , uggh, selling for my tastes.
I've always been interested in Chemistry so I decided to teach myself using textbooks. I realized a while ago that if you have an interests in a subject strong enough to keep you reading and working through a textbook, you can learn anything to a high level because hiding in the pages of a college textbook is the knowledge of many decades of human discovery, engineering, and passion as well hundreds of hours of hours of lecturing, teaching, and even tests (assuming you buy the answer manual). Almost any college course you'll ever take will be a watered-down, rushed meander through a couple chapters in a textbook. If you are willing to go through those chapters, in full, and do most or all of the exercises, you can learn basically anything on your own to a undergrad or graduate (MS) level.
And if you're fortunate enough, as I have been, to be able to fund your own company, your lack of degree doesn't matter because you don't need to signal to anyone that you know what your doing because you are doing the hiring. Granted for what I'm trying to do, I will hire a person with a degree to "head up" my labs for outside credibility's sake.
Also how does the idea of boredom come into play here? Yes self-studying is important but at what point do feel burned out and want to apply it in a real world work station?
Not sure what you mean by “boredom”? I don’t have a clear “definition of done” or a deadline for my sabbatical, that’s also why I try to diversify the topics I’m looking at rather than going through them one after the other. I’ll definitely need/will start working again in a couple of months, but my hope is that working freelance and continuing self-studying is not mutually exclusive. But I’ll need to see next year how this works out then in practice.
I've never had a particular desire to go into development full-time. (I was out of working as an engineer by then anyway.) But, had I wanted to, I have very little doubt I could have slid into a dev job fairly easily with my background if I spent some time focusing on the area I wanted to work in.
But 20 years out of school — This was ideal for me. Walking across New Zealand sounds awesome and if my kids were older I'd do it, but honestly I'm really happy just reading books, watching videos, and tinkering with different ways to program.
After decades in the industry I can't say enough about how awesome it is to not have a schedule, boss, meetings, performance evaluations, 1:1s, deadlines, people counting on you to make the right decisions (though I guess my wife and kids would argue that they still depend on my decisions).
I recently made this hour-long, no-budget feature film about an evil social media company, available on Prime Video: https://www.amazon.com/Opt-Aaron-Royce-Jones/dp/B07ZZMXGK1 Worse than even The Room, but might be the first movie including a realistic depiction of a FAANG interview?
I'm also thinking of freelancing, and have been gearing up for contracts, and also to perhaps start an agency with a friend. I really value the freedom that has allowed me to explore my programming and math (and climbing/yoga/martial arts) interests these last few months.
One unexpected thing about my sabbatical: my social life is better, I have way more time and energy for it :)
As introverted as I am, I have learned in recent years how much easier and faster it can be to learn from other people than from textbooks alone.
Last year, I've been on a learning binge myself, due to the fact that I want to understand the underlying workings of the technologies that are shaping our near future. In this interest, I have taken what little time I have (with a job and two children) to relearn the baseline college mathematics that I've lost from my apathy towards serious continuing education. I first completed the course "Learning How to Learn" and applied the practices within to courses in Calculus and Physics. I'm close to completing Single Variable Calculus on the OCW website on MIT.
I was never a great student, and it could be just because, as I think I've discovered, I'm just a slow learner. My early educational talents and successes were due to a lot of early reading that I did, but it's clear to me that it takes a lot of repetition before I start to understand a subject, and I often have to go back over lectures, then read the associated notes, and run through a ton of practice problems (which I then put into anki) before I grasp a subject. Due to this my learning has been slow (along with the two kid situation), but I'm certain now that I have a much better grasp of the subject matter than I did when I was twenty. I'm not suggesting I'm smarter with age, what I am suggesting is that I didn't have study habits that allowed me to flourish.
Clearly, the current educational models that we are using in our schools are failing students like me who get a good head start due to early reading, but can't learn fast enough to keep up in a classroom environment. It is clear from what I've learned about the learning process from Barbara Oakley and others that the actual processes that we put in place are further suboptimal for the learning process, but the ways that we set up our education system are not the result of experimentation. If I were to surmise their source, I would say that they are explicitly designed to fail, so that we can excuse reduced spending in public education systems.
Still, these self-study courses are great for people like me, as long as you are permitted to study at your own rate. This is important as I'm going to guess that perserverance is as important as intelligence when it comes to advancing to the point where you can aid research teams. I predict that nations that automate educational models (as well as hiring a broad staff of educators, lecturers, and tutors) that are successful will have a much larger impact on the future of the information age than they did in previous eras.
Even in hindsight I’m not sure how well it would have worked out for me studying CS back in the day, let alone doing it on my own. But now, with having practical experience of working as software developer, it’s much easier for me to go through books and learn about the theory, because I can relate that to what I have already applied in practice. This way around my mind seems to be able to digest the topics much more easily than going from theory to practice.
It's probably too late for that course, but IMO MIT's courses on edx are much better structured than on MIT OCW or whatever it's called.
I dream of taking this kind of sabbatical too, it is just a bit scary to do it without some kind of framework that would allow me to plan my week, and annotate, structure, accumulate, and review the things that I learn. I feel like I should focus on finding / designing that system before planning on taking the sabbatical.
I've been in an "involuntary" sabbatical. When I left the company I'd been at for over a quarter-century (mostly as a manager, but very technical), I immediately ran into "Go away, old man. Nobody wants you."
It was pretty jarring, insulting, and humiliating, but what really happened, was I got upset.
When I get upset, I get busy (paraphrased from "Back to School").
Fortunately, I have the means to set up my own company (I actually have 2), and I have spent the last couple of years ferociously focused on working full-time to write software, using the most modern and relevant techniques for my chosen direction (Apple tech -I've been writing Apple software since 1986).
It's working well. I haven't lost a thing, in over thirty years of software development. In fact, I seem to learn much faster, these days, than I ever did, when I was younger. I suspect that all the context I have makes picking up new stuff easier.
I've been building (actually, just organizing and adding to) a HUGE portfolio, with six figures of lines of code, in dozens of repos, spanning at least a decade (although I also reference my first engineering project, from 1987), hundreds of pages of documentation, dozens of articles and essays, and a number of deployed and shipping solutions.
I've learned to work alone very well, indeed (I spent my entire career in HUGE heterogenous teams; spread around the globe). That was one of the things I was afraid I wouldn't be able to master.
The difference in productivity is staggering. I often get more done by 8:30AM, than I used to get done all day as a corporate software developer (I get up early, and close my green ring by 6AM).
I tend to be all about "Get Stuff Done." I like theory and experimentation, but I've been writing shipping software my entire career, so that's the direction I've picked. I heard a guy once say "The #1 feature of the project is SHIPPING."
Working alone has forced me to keep the scope humble, which has worked out, after I learned to adjust my project plans. The biggest coefficient for me has always been quality. I like to think of myself as a craftsman. I get special joy from writing high-quality software.
One of the biggest lessons that I've taught myself was how to be very, very flexible (I call it "ultra-agile"). My corporate background was Victoria Falls (REAL Waterfall). I have been yearning to break free of that yoke for decades.
Working alone has allowed me to explore an evolutionary design and construction process that has, so far, worked fairly well.
The story is still very much unfolding, and we'll see how it goes. I still have a lot to learn, and I like it.
More Will Be Revealed...