top | item 44089150

Open Source Society University – Path to a free self-taught education in CS

534 points| saikatsg | 10 months ago |github.com | reply

162 comments

order
[+] sulikns|10 months ago|reply
I'm 37 and live in one of those lesser-known countries whose diplomas likely don’t hold much weight elsewhere—but that’s not the point. I’ve decided to change my profession. After many trials and errors, I studied Python. I wrote some scripts and bots, but I kept feeling like something was missing—I didn’t really understand programming.

Then I discovered OSSU and, after reviewing their curriculum, I realized just how little I actually knew about computer science. I started over from scratch, even relearning math. Because of the language barrier (yes, I learned English by forcing myself to study in English), my conversational skills are still shaky, and this text was polished with the help of GPT.

I’m not thinking about a job just yet. My current goal is to get a solid academic education, and I believe OSSU is one of the best initiatives ever created—accessible to the entire world. It's not just about being free. Maybe the best universities are in the U.S., but compared to what's available in my country, the OSSU curriculum is several levels higher in both quality and structure.

As for work, I plan to contribute to the open-source world, hoping to make the world a better place, just like the creators of OSSU did. Education should be accessible to everyone—not just a privileged few.

[+] waciuma|10 months ago|reply
If you're an experienced engineer that wants to give back to learners, OSSU is a great place to do so. This can look like:

- Setting a regular time that you'll pair (or mob!) program on a side project of your own with OSSU learners. - Developing familiarity with one or more courses in the curriculum and responding to students who have questions or are stuck. - Attending weekly check-in meetings, sharing what you are working on and listening to what learners are working on.

To do so - Visit our Discord server: https://discord.gg/wuytwK5s9h - And ping me @waciuma or the @tutor role

I'm one of the leaders of OSSU and we agree that community, networking, and projects are part of a complete education. That's why we celebrate not only the professors and universities creating free courses, but also the many engineers and practitioners that have volunteered with OSSU learners over the years. I hope some of you will join that group!

[+] nand_gate|10 months ago|reply
No Discord, please.

Plenty of FOSS alternatives exist.

[+] dokyun|10 months ago|reply

[deleted]

[+] fzwang|10 months ago|reply
I run a comp sci education program to help students self direct their education[1]. We sometimes reference the OSSU curriculum.

Althought there are lots of benefits to the self-taught route, there are some caveats which students should be aware of. You will have to work harder on the "signaling" and networking. There are definitely social benefits in being associated with a university. And a lack of degree will mean you're "marked"[2], which you'll have to overcome. A setback or mistake will be attributed to your lack of degree, whether justified or not. And some hiring managers can't take the political risk of hiring a non-degreed candidate. Not insurmountable, but this means we work on it from day one. If you do decide to self-direct your education, the benefits are that you learn faster and don't waste time spining the hamster wheel, so to speak, to grind out courses. Everything you learn is in context and relevant. If you realize you miss some fundamentals, you'll just go back and learn those concepts/topics. It's a different way of learning, which imo, is inevitable for technical professions. But it's not for everyone, and some students just vibe with it more.

What's sad is that many students are sort of forced into the self-taught route, because they don't have the financial resources to go to college/university. And if they're not aware of the trade-offs, they could really struggle.

[1] https://www.divepod.to [2] https://en.wikipedia.org/wiki/Markedness

[+] Aurornis|10 months ago|reply
I’ve followed and part-time mentored several people through their self-taught education. There are a lot of pitfalls and traps that can send people down the wrong path if they’re not careful.

One that I did not expect but that seems obvious in retrospect: It’s really easy to start reading Reddit or watching Twitch streams of developers ranting about the industry and think that actual skills don’t matter any more. There’s a temptation to think that you’re a fool to study and practice the job skills because what you really need to do is optimize for interview skills. So they drop everything and starting grinding LeetCode, putting unfinished “side projects” on their GitHub that have all the right things in the README.md (just hope nobody actually looks at the code) and memorizing S.T.A.R. format responses for the common behavioral interview questions.

This strategy actually worked reasonable well for a few years, but the game has changed and most companies are better at catching professional interviewers who don’t know how to do much else.

I should note that this mindset isn’t unique to self-taught people: There’s a parallel epidemic of cheating in college among students who see it as “just a piece of paper” and think they’d be foolish to actually learn the subject material. This also hits hard when they reach graduation and are faced with the current style of interviews which are not as easy as they expected to bluff your way through.

[+] dgb23|10 months ago|reply
Some challenges as an autodidact:

- Some people assume you lack theoretical/foundational knowledge.

- Guidance/mentorship is harder to come by.

- You’re likely learning on your free time while working. Quality time is hard to carve out.

- It’s harder to get a sense of where you’re at.

- External validation is much more difficult to get. But you need it when you’re searching for a job.

- You inevitably make a lot of decisions that university students don’t have to make. This can be taxing.

- It requires more discipline, because there isn’t anyone checking in or forcing you to demonstrate your learning.

On the other hand, overcoming these challenges is beneficial, especially if you never really stop learning/studying. You pause from time to time, but you pick up again, because there’s always more to learn.

A big advantage that might not be obvious: You pick up niche subjects, simply because they interest you.

You’re not just learning things that seem useful in your context. It’s actually often the other way around: you learn things that you’re curious about and perhaps a year later you encounter a situation that you can solve a problem because of that.

Curiosity is an interesting mechanism. It’s often a better guide at driving your learning than an analytical approach.

[+] elpatokamo|10 months ago|reply
I was immature right out of high school and fumbled a really good opportunity to finish a degree in computer science. After getting married and having kids I later went back and quickly finished a degree in IT, but CS was always my first love.

A couple years ago I found myself in a place where I would really benefit from finishing my CS education. I put a lot of thought into getting a true second BS degree, a post-bacc, bootcamps, etc but eventually settled on OSSU.

It’s taken me longer to get through it than I wanted (life happens) but I have nothing but positive things to say about the curriculum so far and about how it’s affected my career and honestly my own happiness.

I blog about it occasionally. This is the first one and explains why I chose OSSU over the other options available to me: https://dustinbriles.com/ossu-blog-1/

[+] theusus|10 months ago|reply
A better alternative imo https://teachyourselfcs.com
[+] elpatokamo|10 months ago|reply
I looked into this when I was trying to figure out how to round out my CS education. The lack of community is the primary reason I went with OSSU instead.

Genuine question: why do you believe Teach Yourself CS is superior to OSSU especially in light of the community aspect?

Full disclosure: I’m a “social organizer” for one of the cohorts in OSSU and blog OSSU sometimes

[+] justin66|10 months ago|reply
That is a list of textbooks and videos that might provide some value to people (or not, in a couple of cases), not a computer science curriculum.
[+] paradoxyl|10 months ago|reply
This guide hasn't been updated since 2020, does it need or will there be updates in the future?
[+] iamleppert|10 months ago|reply
You can definitely make the self-taught path work. I'm proof of that and have been working in industry for over 20 years. However, what I will say is the following: there are certain companies and roles which you will never be able to access. These are often times the best roles, best companies, have the most money, etc. A degree isn't just the time spent studying and knowledge -- you can do that part yourself. What's more valuable is the network and access to the alumni network of others who will hire you into their company just because you went to the same school as them. It's a big club and you won't be in it if you decide to self-study. That's the cold, hard truth.

So what's left for someone self-taught with no degree? You are left with all the jobs the others don't want. You'll be flipping through the crazies, outright scams, poorly capitalized companies, or places that are already in a state of distress. VERY rarely you will find a real job that you can plan to stay at for any length of time. You WILL be paid less, and you're more likely to get taken advantage of. You will have a harder time getting multiple offers at once, because your overall demand is lower. So that erodes your position in the market and over time it will feel like you're on a completely different tract financially. You will need to work twice as hard, because finding a new job is much harder, even if you're good. You will constantly be doubted, by first yourself and imposter syndrome and next by those around you who have degrees. Make one mistake and the consequences are that much more dire.

It's better than nothing, but if you have the opportunity to go to school (I didn't), do it over the self-taught route.

[+] electrolusty|10 months ago|reply
I don’t mean to discount your personal experience, but I’m 100% self taught, and I’ve worked at some bougie megacorps, unicorns and startups of varying degrees of maturity.

I’ve never felt like doors have been closed or that others doubt me because of my lack of education. I’ve interviewed at Google and Citadel, had an offer from Meta, etc. It doesn’t feel like anyone has denied me opportunities outright.

I make north of $200k/year cash plus the equity and perks at an early stage startup. I’ve been through two exits so far. Nothing outrageous but I’m rich by most peoples standards. It doesn’t feel like lack of schooling has impacted me financially.

I did start programming and doing the startup thing at 19, so maybe the early start was an advantage. I could just be mind numbing lucky. But, from my point of view, warning the up and coming youngin’s off the self taught path is a disservice.

[+] sarchertech|10 months ago|reply
I worked for several years as a software dev before I went back to school for my CS degree.

I’m a much better developer after spending 3 years (already had 90 hours worth of a history degree) studying a prepared curriculum instead of bouncing around learning about whatever interested me.

I think it’s possible to do that on your own but the vast majority of people will never come close.

I’ve also definitely worked with self taught programmers who were better than me. But I’ve also noticed gaps they had and to a person I think they’d have been even better if they’d spent 4 years in a decent CS program.

[+] zamadatix|10 months ago|reply
I found there is some truth to this but it was almost all in the beginning and/or if you expect to be in ~the bottom half of your peer group. After those criteria pass it comes down to your overall ability to network throughout life (not just from a college) and general chance/luck (which remains a larger factor than most would like to admit).

What college can give you at the beginning of a career, beyond the premise of a guided education in the field of study, is a piece of paper that says "I really did learn some relevant stuff and have the ability to follow through" before you have a chance to prove these things in the field by already having had a job in it. It also gives you an initial chance to build a network but that's true of however you manage to spend your first 2-4 years getting into the field. After that initial in-field job or two the non-educational related value of a degree falls off a cliff (and the educational portion becomes an ever decreasing slice of job specific knowledge you acquire over decades).

My anecdote (that's all it is) comes from starting out without a degree and then getting a degree for the fun of it over a decade later. It's provided 0 value in any job, they've all come from references or recommendations from people I've worked with previously at this point. It was fun though, a chance to get involved with topics you wouldn't normally have a reason to touch.

[+] Scubabear68|10 months ago|reply
I am most likely ADHD, probably in the spectrum to some degree.

Tried college three times and dropped out every time due to expense, boredom, and personal issues like my father passing away from cancer when I was 21.

I went into software development via tech support for a C compiler company, and worked up from there.

Worked for the NY stock exchange, two top tier brokerages, several prominent Fintechs and ultimately consulting into banks and payments companies.

It worked for me because I am largely an auto didact and do terribly in a school environment.

The lack of degree came up only a few times, and no one has cared.

At least in software development careers, degree matters very little to not at all.

[+] cultofmetatron|10 months ago|reply
I'm somewhat sympathetic to this having been self taught myself. there was def a struggle in the beginning even getting low hanging jobs. It means you need to invest a lot of your off hours learning new stuff and getting ahead. a lot of university educated CS majors don't learn anything new after university and only put in just enough to do their job. being self taught means you need to be a lot more proactive about getting ahead of trends and being the guy on the frontlines where there isn't a whole lot of people that know a technology at all.

I myself was lucky enough to jump on the javascript train before javascript ate the world. 8 years in I switched over to elixir because i saw in it the potential to be the best stack to build MVPs in. These days, I'm maintaining one of those projects as CTO and we are interviewing candidates for a position. I can tell you personally, I value what you did at your last job and your side projects more than what you did in university 10 years ago. The one issue as someone from the interviewing side is that it takes a lot of effort to actually do an interview properly. I spent a lot of time putting together a coding test to test specifically for the tasks you'd be workin on as well as doing it with our applicants to make sure they aren't using vibe coding to do a half assed job. Its worth it though to make sure we make the right hire. when you're a startup, every hire can potentially make or break the company.

[+] throwaway20174|10 months ago|reply
There is something that I find very often gets lost, not in this comment but in the general conversations.

There are reasons to study CompSci that have nothing to do with trying to get a job, or make yourself a better worker. Namely, it's fun!

You can be a lifetime student of it and can be very rewarding. Both the practical side (programming) and delving into the mathematical underpinnings (theory) and history of computation.

News articles where people tell young people, "don't study computer science" don't get it.

[+] peterhadlaw|10 months ago|reply
I've been personally involved in the hiring process of our startup and I give you my word the school you went to makes no difference. In fact one of my favorite coworkers that I had an honor to work with was self taught and had a philosophy degree. In fact I've seen big school degrees go straight to heads and egos and been actively an obstacle to those folks.
[+] cortesoft|10 months ago|reply
> What's more valuable is the network and access to the alumni network of others who will hire you into their company just because you went to the same school as them.

This seems completely untrue in my 20 year career experience. I have hired dozens of people for both large and small companies, and networks do matter… but I have never once seen the network be from school. It is always about people you have worked with before. Even my coworkers with degrees don’t have contact with their schoolmates anymore, it is always people they worked with.

[+] monkeyelite|10 months ago|reply
> You are left with all the jobs the others don't want.

I don’t think this is quite right. You may be left out of the very first choice jobs at the junior level, but it doesn’t mean you’re getting the bottom portion of jobs.

I’m glad I went to school, I was on the fence. It improved my career, but i also know I could have found work my whole life without it.

There’s a whole economy out there full of opportunity.

[+] efficient3823|10 months ago|reply
> It's a big club and you won't be in it if you decide to self-study. That's the cold, hard truth.

But what about the self-taught club? If it’s not already big, it’s definitely growing. Honestly, I can’t see how a Columbia graduate is more likely to get hired than a self-taught kid who’s had a few pull requests merged into something like the Linux kernel.

[+] znpy|10 months ago|reply
If you worked in the industry for over 20 years and your network is weaker than a recent graduate, I wouldn’t blame it on the college, your networking game is just weak.

As a college drop out, i have a few friends from university in the various big companies but none of my jobs came through them (even when i want to work in a faang: i just didn’t need it).

[+] rkagerer|10 months ago|reply
I feel this take on it is a little over-dramatized. I empathize with the first part - connections are priceless when you're staring out - but in time you can and will build a reputation for your quality of work, interactions with (and then capability to manage) others, and achievement of results. All these can be developed at a no-name startup as well as at a FAANG.

I went to university but only apply maybe 5% of what I learned there in my day job. I founded and grew a company, also worked in senior roles at others. When I interview for engineering positions, I'm much more interested in other factors than what school you went to or who you've brushed shoulders with.

I recognize parent commenter's experience may be different, and give solid props for their self-taught journey. (In fact someone who can figure things out without having to be spoon fed is exactly the kind of person I want on the team).

[+] colechristensen|10 months ago|reply
I don't have a degree and after the first few years no one cared at all from garage startups to the Fortune 100.
[+] cedws|10 months ago|reply
I also wouldn’t disregard the experience of university itself. I went the self-taught route, left school at 16, built a career for myself to get to where I am now at 24, but I do have regrets. Going into working in an office basically terminated my youth right there and I haven’t had a social circle since. Not having debt is nice but if you can afford university both in terms of time and money, and come from a family you can fall back on, I’d say just go. Once you start work there’s no going back. You’re in the cold hard world.
[+] yapyap|10 months ago|reply
Yeah what you said BUT there’s also big opportunities in networking

I know people hate to hear it cause it sounds like a magic bullet and it does and I don’t like having to market myself either but it does work.

You don’t even really need to have an alumni for networking, just a few relatively nice / ok projects, a website and some business cards and you’re off!

[+] nomat|10 months ago|reply
networking is important for sure, but i think software more than most other industries (say, finance) has a much lower barrier of entry for an individual with no/low resources.

a data point for your second paragraph: i play D&D weekly with a woman that got hired at google straight out of high school and worked there for 10 years.

[+] throwaway314155|10 months ago|reply
> What's more valuable is the network and access to the alumni network of others who will hire you into their company just because you went to the same school as them. It's a big club

The size and value of this club of alums depends _entirely_ on where you went to school. Not everyone gets into MIT.

[+] tptacek|10 months ago|reply
Self taught, no degree, zero friction in the job market either early in my career (job offers on Wall Street and the startups I wanted to work with) or 25 years later; have done consulting work almost everywhere, and had offers from both big tech companies and unicorn startups. No investor has ever cared, either.

The "you'll be stuck with all the jobs other people don't want" thing is risible.

[+] doublerabbit|10 months ago|reply
As someone who did go the self-taught route, I wouldn't say it's the route to take if you enjoy depth via academic, I dropped out of university. I'm a practical person and learn as I do, I disagree OP, it sucks you got that end of the straw. I have had it just as good as others but you just need to put the extra effort in. Yes, you do get jobs not so good as the grand but you cash in those later.

The route up is just more steep but in the end you end up more valuable experience and within 15 years time you then can cash it all in for a fortune 100 company. As that's where I am and I am only in my mid-thirties

You should go to college however if university isn't your thing, don't feel like your forever going to be an entry grade tech.

The route is more steep but it's all worth it; just keep seeking higher jobs with every departure.

[+] jsphweid|10 months ago|reply
Which companies are you talking about?
[+] devwastaken|10 months ago|reply
unless youre ivy league theres no more connecting. universities are completely irrelevant to tech in modern day. people are talking about their experiences 20 years ago. now, its just expensive adult daycare. remove federal student loans and grants and the market will finally correct.
[+] aardvark179|10 months ago|reply
So several people in this thread have talked about academia giving you a network, and getting jobs via that, but have also conflated that with companies only hiring from particular schools.

The network of contacts you make through university and your careers is a mechanism by which you hear about jobs you might otherwise never get the chance to apply for. That’s a very real thing, but will tend to be dominated by contacts you make after university as your career progresses.

The other thing of needed a degree from a particular university, or a PhD, isn’t so much about a network as that degree being a shibboleth. The person reading your job application sees that and knows there are questions they don’t need to ask.

These are both things you can, and may need to, work around if you go down the self taught route. Depending on the work you want to do you may need to make sure you do work which either you can point to or other people will see so that you hear about those jobs, or get a referral to avoid the normal job requirements.

[+] tomnipotent|10 months ago|reply
> you might otherwise never get the chance to apply for

It kind of reminds me of the whole "luck is not a strategy, but increasing your number of attempts is". Having a network increases the number of chances you have to get lucky. I have a friend that joined a work softball league, and that network eventually led him to a role with another company participating in the league.

[+] ungreased0675|9 months ago|reply
One of the problems with not having a college degree is that companies won’t even look at your resume. It gets filtered out before a human even looks at the candidates.
[+] AstroBen|10 months ago|reply
I wonder how much the 'free and open source' requirements of this curriculum hold it back. Someone serious about self learning shouldn't be hesitant to invest some money in good material
[+] akshitgaur2005|10 months ago|reply
I am a college student, about to begin my 3/4 year of the course. Most of the things about networking and all don't apply to me, because although my Uni is one of the best in the country, it is mostly focused on humanities and the CS school (or any engineering school) is quite new with only batch of graduates till now.

I am certainly no novice, easily one of the top 10 in my school and definitely top 2 in my year, though that does not mean much here.

So my question is should I focus more on projects now, or do OSSU instead, or try to do both?

https://drive.google.com/file/d/1RoHHwBbZfRE-LdC7Ow3sQvX73c5...

[+] globalnode|10 months ago|reply
Maybe getting a degree counters any social shortcomings for most people, its a piece of paper that will get your foot in the door so to speak. It says "I've spent 3-4 years working on this area, have at least half a brain and am committed". So even if you can't speak very well to people (yet) you still have something going for you. If you're self taught, you don't have any of that so you've gotta be pretty good socially and at networking, or just really really lucky. I think being good socially breaks all the rules honestly and is like a superpower, you could probably talk your way into most things with little in the way of real skills.
[+] jbirer|10 months ago|reply
Shout out to Stanford that made it possible to start a CS education for free, for a Romanian kid who could not afford it (me). The free video course they have had up there since about 20 years was one of the foundations of my programming career now.
[+] epolanski|10 months ago|reply
Not gonna lie, the amount of defensiveness people have in these threads, both camps, is a bit sad.
[+] fedeb95|10 months ago|reply
This is very interesting. It is great also as a reference for those that already now some CS. Ideally none should reside on youtube, given it is named "Open Source", but I get that a lot of resources reside there.
[+] oleks|10 months ago|reply
As an avid designer of CS courses and curricula in the not-so-distant past, I would like for it turn into a success criterion that your course gets included in this listing.

Back when I was involved in designing the BSc education at the University of Copenhagen, I remember referring the committee to the ACM/IEEE-CS/AAAI Computer Science Curricula. Great to see that there has been an update to these recently, complete with a Generative AI section and all :-)

[+] jbverschoor|10 months ago|reply
Saylor (Michael saylor) has saylor academy. It’s a feee resource, and you can get academic credits if you do the exams.

The information is very dense, but goes into more detail dan your average CS degree. Quite low level and tricky questions

Not as accessible. Just a whole bunch of text. Kind of old school, but at least it’s out there

[+] Havoc|10 months ago|reply
To what end?

Surely a community college level education is more conducive to getting a job. And if aim is to make money I'd probably attempt something closer to neal.fun or levels.io not this. If you're not getting the piece of paper then you maybe as well yolo it

What does that leave? Straight interest only learning for the sake of it?

[+] mmooss|10 months ago|reply
Don't try to be entirely self-taught. Everyone needs guidance and feedback from experts in the domain; otherwise you are certain to misunderstand things, have large blind spots (truly blind; you'll be unaware of them), not understand how things apply in real situations, and have no exposure to the latest knowledge.

It doesn't have to be via college; there is apprenticeship, even if usually unofficial in IT, at many jobs. (College can be fantastic in many ways if you have the opportunity - don't let the reactionary politics ruin your life-changing opportunity - especially if you are intellectually curious.)

Also, be very choosy about who you learn from; I'd be much more choosy about that then about what you learn, or even where I work or the job I do - do anything to work with and learn from the best people. The range of knoweldge and skill in the real world is almost impossible to conceive of, and a lot of it is so much BS. If you learn from C-level people, you will have C-level knowledge and skills and never know better until you meet someone who is B-level or A-level - there are entire organization and towns of C-level people. One big advantage of going to someplace like the Bay Area is the community of highly-skilled people, many on a level you are unlikely to meet in most other places, and being exposed to the newest ideas. Just being there can raise your game, if you take advantage of it.

[+] trklausss|10 months ago|reply
What I’m missing is some math like differential equations (both ordinary and partial). Does anyone have a good (and free) resource on that?
[+] yokuze|10 months ago|reply
It’s worth making this very clear for learners: A Computer Science education is **not** the thing that will prepare you to work and make money in many real-world _jobs_.

Some? Yes. Many? No.

This blurb from one of the course pages (unintentionally) says it well:

> Because the point of computer science isn't to teach you a language. Or to teach you to code. Or to teach you to be a fullstack software engineer. Computer Science is a very narrowly-applied applied math with wide-ranging practical usage. But if you strip away all the qualifying language, it's math. Which means it has certain overarching rules that are completely, totally independent of your implementation language.

In short: the point of Computer Science courses is not to teach you to do the thing that you will be doing when employed at the company that pays you.

Another:

> if you want to read white papers you're going to want to read Lisp

Most jobs are not about reading or writing white papers. Almost all Computer Science courses are an _academic_ pursuit, not a practical one, and are taught as such.

If your goal is to _work_ in the industry, this is _a_ path, but it is a very inefficient one.

Depending on what work you are happy with, 80%+ of the content here will not contribute to your success.

Will learning the things taught in these courses exercise your problem-solving and other mental abilities? Yes. Will they teach you broadly-applicable principles that you could apply to your work? Hard _maybe_, depending on their teaching and on how well you learn and generalize. In any case, you may well end up doing work that utilizes little of this.

If you want to work in research, a math-or-fundamental-sciences-heavy field, or with teams of folks creating new programming languages or database engines for example, then certainly some of these courses (and more) are required.

But it’s worth warning potential learners that a full Computer Science education is _neither an efficient nor a necessary path to a job in the field_.

What is?

One example: There is much available and satisfying work in building user-facing applications like web and mobile apps.

If your goal is to do that kind of work, then it’s best to relentlessly focus on the things that you will actually be doing at your job: Building things.

Broadly speaking, employers pay you using the money that they are making (or hope to make) by solving problems and/or providing services using software/applications that you will help write. So practice writing it. Learn to build real things: Mobile, web, or desktop apps that do a thing that _you_ would want to pay for. Find courses that teach that. Practice it. Hit a wall, research and figure out how to overcome it. Repeat. Submit PR’s to open source projects, especially ones where experienced maintainers review your code. Learn from that feedback. Read their code and understand how it comes together to create the app you are using. Have LLM’s review your code, even, if no skilled human is available.

Practice working with other people. Learn how to write and communicate clearly and unambiguously.

Find and fix bugs in open-source codebases.

Embrace that working in the field means a commitment to non-stop, career-long learning.

Later, after you’ve freed up mental space by mastering the basic mechanics of programming, begin researching and applying the techniques and methods for writing code that other people find pleasant to read, interact with, and modify/extend.

Build something that you can show to prospective employers.

You will also learn many more things from the people you work with.

Many of the hard skills you will learn through doing _these_ things will directly transfer to the work you do, because _it is the work you will do._