IMHO no matter end at which you work, it takes time to truely master necessary skills.
Find a mentor. He/she may show you the way.
Btw, I find this book interesting: "So Good They Can't Ignore You: Why Skills Trump Passion in the Quest for Work You Love" 
Meanwhile a lot of time went by, I'm almost 40, and I have worked at 8-10 companies (incl. FAANG, my own startup). His later advice, from the book "Deep Work", was not in line with my work experience . The problem is, Cal doesn't have a regular 9-5 job as a tech worker, at a tech company. He's in academia (and self-employed), which is very different --- I know, I also worked in academia! And this shows.
For example, I was reading his book Deep Work while I was at Facebook, where the whole company is on Workplace/Workchat internally, with frequent notification/mention/chat interrupts, and the culture is to have quick response times. So no Deep Work, yet velocity and productivity is very high. It's not true that you need a lot of focused time to get things done, you can manage it in smaller chunks. It'd be convenient, but it's not realistic.
Reflecting on this article, in my experience, the key thing to focus on for companies is not personal productivity but team organization. The topline differentiator between high-velocity and high-productivity organizations versus the rest is that these are a collection of self-sufficient cross-functional product teams. The rest, which is most organizations, usually run "projects" instead of products, and multiple departments and teams, with different reporting lines, goals, OKRs/KPIs, etc. are exptected to work together to make it happen --- the result is the organization becomes one big waiting/blocking graph, with 80% of projects being blocked at any given time. This also makes personal productivity harder, because more "sync" and "alignment" type email threads and meetings are needed. In this model people have to work with more people they don't know/trust, so more people are communicating with each other who don't know how to communicate with each other, they may not even know the other person's exact job description or timezone location.
Having said that, I appreciate Cal's perspective, and I'm happy to support him by buying his books.
 "So Good They Can’t Ignore You" by Cal Newport. It changed the way I look at my career and how I view my personal development.
 ADP 6-22 Army Leadership and the Profession by the US Army. Looking past the militaristic stuff, it made me change the way I see leader/subordinate relationships and how to start becoming a person others can depend on and look up to.
Until then, "play the game" and over-deliver. Your only other alternative is to return to freelancing if setting your own schedule is that vital a prerequisite.
* [reading] Atomic Habits (https://www.amazon.com/gp/product/1847941834)
* [reading] So Good They Can't Ignore You (https://www.amazon.com.br/gp/product/1455509124)
* 97 Things Every Engineering Manager Should Know (https://www.amazon.com/gp/product/1492050903)
* The Manager`s Path (https://www.amazon.com/gp/product/1491973897)
* The Five Dysfunctions of a Team (https://www.amazon.com/gp/product/0787960756)
* Overcoming the Five Dysfunctions of a Team (https://www.amazon.com/gp/product/0787976377)
* Who: The A Method for Hiring (https://www.amazon.com/gp/product/0345504194)
* Power Score: Your Formula for Leadership Success (https://www.amazon.com/gp/product/0345547357)
I'm not sure I'll get to all of them but I spent quite some time researching them and think this is a good list.
I usually read 2 books simultaneously because I like to read them and let certain things sink in. It provides a nice way to link some insights.
Before the make any decision you should read this book.
This is a good book on the subject https://www.amazon.com/Good-They-Cant-Ignore-You/dp/1455509124
Lose the swift programming course, it’s not really relevant to you, and you already have a lot to cover in a tight space of time.
Good luck with your studies. As others have already said in this thread getting a researcher position will be super hard. There aren’t all that many positions available, and there’s so much hype around ML that they’re all super over-subscribed. You might be right that you don’t need a PhD, but a PhD and research experience are useful and you will be up against those that have them. You should consider getting some industry experience as a data scientist or data engineer (which might be a bit easier to get hired as) to complement your self study if you’ve decided academia is not for you.
You’ve got a lot of reading to do already, but I found the book So Good They Can’t Ignore You a helpful read when faced with a tough career choice. It’s not super long, and has some interesting ideas (mostly based on anecdotal evidence but useful nonetheless).
Start trying to build your ideas with the coding skills you have. It probably won't be the thing you build, but working on a project to learn to program works better in my opinion, as you'll work to achieve something tangible instead of learning in a void.
0. Read Cal Newport's "So Good they Can't Ignore You":
"Talks at Google": https://www.youtube.com/watch?v=qwOdU02SE0
Newport addresses career change strategies, how to build good careers, etc.
1. Read Marc Andreessen's Archive:
HN commented collected links: https://news.ycombinator.com/item?id=19739943
It is a collection of tweets made in a nice format, then an ebook.
Andreessen addresses a lot of topics.
2. How to Start a Startup:
3. Startup School (CS183F): https://www.youtube.com/watch?v=5ZXU84_sGXo&list=PLoROMvodv4...
The list is last uploaded on top position, so first video is on the bottom "How and Why to Start a Startup". Haven't watched the series except for the ones on "How to Find Product Market Fit" and "How to Build a Product II" and some of "How to Build a Product"
There are 5 ways to make friends. I put them in order 1 to 5, 1 being the most effective, 5 being the least.
I recommend 1,2 and 3
If you have a CS degree you can get a job making $50k a year anywhere in the US. Introverts preferred depending on what company, pay level, and area of the country.
Rare and valuable skills are what matter. Personal connections can expand upon or make up for extreme social awkwardness but come on, I dare you to attend WWDC and tell me only extroverted people can make it in this world.
You need to read "So Good They Can't Ignore You" by Cal Newport, like yesterday.
It changed my perspective on my relationship between passion and work, and on my career path.
My choice was almost entirely pragmatic, and was heavily influenced by the book So Good They Can't Ignore You by Deep Work author and Georgetown CS professor Cal Newport.
As for the bootcamp experience - I have trouble focusing for long classes, and would have benefited from a couple or more months of pre-study. (Classmates who did the best during the course had the most prior knowledge.)
However, the camp was a great launching point. I did work my ass off, staying up all night to work on individual and group projects in the lobby of the Ace hotel. If anything, the bootcamp helped solidify my own internal identify shift.
3.5 years later, I'm happy with my choice. I'm currently working remote for a startup and teaching evening intro to coding classes (yeah, at a bootcamp, so take my account with however many grains of salt). I really like teaching, and enjoy the intellectual challenge, salary and freedom provided by my day job.
Most of my classmates who I am in touch with are working as developers and seem to be doing alright also.
It's a fantastic book by a now tenured CS professor that provides a good framework for how to think about your career / career satisfaction. He encourages working backwards from the lifestyle you want to the skills you need to master to where you are right now. His framework provides a lot of clarity and helps you ignore the roller coaster of announcements, updates, and new "things" you FEEL like you need to stay on top of.
You can also just read some of his blog posts - calnewport.com/blog - if you don't feel like buying the book. Or check out some of his interviews, etc.
I'm going to go against the grain of most of what's being said in this thread and say that the best way to get through adversity is to discard a goal-based mentality entirely, in favor of a system-based mentality. Figure out the stuff you have to do every day. Get disciplined about doing that stuff. The 'small wins' you get from just executing the loop over and over again build up a lot of momentum over time.
I started with making my bed as soon as I got up every day, and just built on that. When there's something new I want to do, I set up a system for it. When the system isn't working, I change the system. Rather than deciding whether I wanted to do something or not before doing it, I'd just do it, then reflect afterward if that made things better or worse.
This approach got me through some really really bad times, helped me get fit, got me through tough, stressful workloads, calmed me down in times of chaos and helped me make the right long-term choices. I'm overall happier.
Here's some resources:
- https://www.amazon.com/Good-They-Cant-Ignore-You/dp/14555091...edit: oh and one other thing I got out of this approach. People absolutely can change, it just takes a lot longer than people usually put on. I'm a different person from who I was ~4 years ago, mostly in a positive way.
edit: oh and one other thing I got out of this approach. People absolutely can change, it just takes a lot longer than people usually put on. I'm a different person from who I was ~4 years ago, mostly in a positive way.
So Good They Can't Ignore You calls this the Passion Hypothesis, and argues (very well) that this is the wrong way to think about finding a career.
Instead, create a craftsman-like mentality and work ethic, and then use deliberate practice to get very, very good skills. With great skills, you will enjoy your work much more.
I believe this advice aligns with the rest of the blog entry very well. Creating value (and doing it well) requires an advanced skill set.
  This is an arguable point, since caring about something could be different than being passionate about it.
 This is an arguable point, since caring about something could be different than being passionate about it.
You can't really control bad coworkers or bad bosses (which will ruin any job no matter how much you love the work).
But you should read "So Good They Can't Ignore You" (Amazon link ) The author proves that the commonly held belief of "follow your passion" is actually really bad advise. You can find happiness in about any career as long as you gain unique skills, have autonomy, and are working on something meaningful/impactful.