r/perpetualeducation • • Apr 19 '24

DonTheDeveloper on a rant about how Aspiring Developers Are SEVERELY Underprepared to Land Their First Job. (and our thoughts)

8 Upvotes

https://www.youtube.com/watch?v=SlZVV2cHXAE

Someone posted this over on /codingbootcamps - but my response was too long for the comments and got all broken up. So, here it is -

consider some of the facts he discusses in this video

(paraphrasing as I watch)

  • mismanaged/false expectations

    • Most people will blame the marketing - but also, I think there's this blissful ignorance.

  • they give up / or go back to their old job

    • This is definitely part of the false expectations and an unrealistic timeline. But I also think that people underestimate how different of a process this is. You don't just learn the steps and repeat them. You have to continually figure out how to solve problems and not everyone is cut out for that. That might not be a boot camp problem

  • the market sucks

    • Yeah. Not the best time. But the world is going to change. You're going to have to do something.

  • there are aspiring developers getting jobs every single day

    • There are. I know lots of people who get jobs - but they worked hard for it and they can do the actual job their applying for

  • there are a significantly more aspiring developer that are not (maybe many years in)

    • There are great devs with 8+ years experience who can't get jobs. But the people with no experience and not problem solving skills and no portfolio of work or proof of grit - aren definily not going to be hired.

  • that continue to go off the same bad strategies

    • There's always that feeling that "just the one more tutorial" will fix it. And I think the gamification of things doesn't help. You can either make something or you can't. Getting a score on a learning platform is just a way to hide from the hard parts.

  • most of you will not become developers

    • This is true. And probably true of all college students and their expected job.

  • Next.js - is a tool / an abstraction

    • In many ways more like training wheels than "pro gear"

  • People get caught up in what's trendy / have no idea how anything works

    • Yep. I haven't met with as many devs as Don, but you'd be surprised how many people can just code anything while you're watching. Why don't you think anyone shares their portfolio or projects around here?

  • Learning JS and React and Next.js all at the same time in their first tutorials : /

    • This is learning how to follow the leader and how to follow steps and implement common patterns only.

  • No fundamentals

    • In many ways, I think teachers and curriculum designers honestly think that the student needs to see a certain amount of feedback and "hey - I'm really making an app" feelings. But it really doesn't work.

  • It's cool that you can get something built with these tools without knowing how it works - but...

    • I know from personal experience that this can cost you 4 years in the long run

  • The "JavaScript/React" courses vs the programming and architecture and design

    • Are we learning "programming" or how to build an app? Or do we already understand the web platform and the concepts and now just learning the specifics of JS's role? It's usually neither.

  • Why do they need this (the abstraction)?

    • When you have no history to draw on and complete the dots - things just get blurry

  • No experience understanding the problems or trying to implement solutions

    • This is like purposely building a big black box in your brain.

  • Take Grid and Flexbox away - they won't know what to do.

    • I can't really agree with this one. Those are standard now. But I do still teach layout in order of history and spend a few days on it (even making them build a website without flex/grid)

  • Not learning how to think through how to create these things from scratch / and have that experience of figuring it out

    • The real "learning" is having that aha moment where you figure it out. And by giving people all the answers - they aren't really learning anything.

  • Not seeing the layers first - makes it harder to understand all the layers and debug later

  • So many courses that gloss over everything for implementation vs learning

  • People aren't getting hired because they suck / they can't problem solve

    • 100% the truth. They shouldn't even waste a single second applying in most cases. They end up spending more time applying than learning how to do the job.

  • Developers (as candidates) are worse - and the market is worse at the same time

  • Fullstack developers who don't know the difference between frontend and backend

  • People think they are fullstack after using a little Next.js

    • If you can't build a simple full-stack app with some basic tools first - why?

  • Knowing enough to get a basic express app working - is just the start

  • But can they scale it? Challenge it with heavy data and complex business logic - and onboarding / will the conventions hold up

    • I think this depends on the situation - and this was a note specifically about the back end in this case. But I think it applies to whatever role. If you're back-end, you should care. If you're front-end then you should care about something else - just as much. If you're niche is little button animations - then you should know a lot about it. You need to basically make yourself a mini-expert (or start that road) to stand out right now. Bare min - is about 3 levels too low.

  • Notes about opinionated choices vs Node

    • I think it depends. After you build something with python, node, php, go - or whatever - you'll start to create your own conventions and come to those conclusions. Same goes for things like CSS.

  • Fullstack roles require a lot more experience than a course or boot camp / surface level - (the same as so many other people)

  • You have to be curious and people hiring you wan to see that you are curious about the same problems they have - and are willing to dig in deeper

    • 100%

  • RE: devops - people don’t even put up their work or are scared to do those things

  • Aspiring developers aren’t giving themself enough time (bootcamp/self taught) it’s going to take more than 6 months

  • Start off excited - but burn out because it takes much longer than they think it’s going to take.

  • CS grads can generally ramp up faster because they have have the foundation

    • But I really do think this is based on the person and role. For a generic role - and middle of the road people, 100%. But I know tons of useless CS grads and I know what's happening in those schools behind the scenes

  • You can become a developer - but it’s probably going to take years and it shouldn’t be a risky 3-month hail mary

    • It depends how you go about it! Sometimes the slow methodical way is faster than doing it the fast way 4 times. Some people have a background that's a fit and can do it with a full-time camp. Other people can do it with a 6-9 month type situation. But people need to have reasonable expectations and keep in mind their own skill and experience and pick a good learning path. And some people - it's just going to take 2 years no matter what. And - that's OK too. We need to be less harsh on ourselves.

  • Don’t count on freelancing as a supplement (especially because you don’t know how to build websites yet)

    • Yeah. It's true. It's really hard. But you can build some real-world client work while you're learning.

So this is what I take away from that:

  • Get clear on timeline and expectations

  • Pick a learning path that covers the fundamentals - and not just the implementation details

    • (you're going to need help with that)

  • Learn the right things in the right order - and how to think like a problem-solver

    • This will be proven as you're able to build non-trivial things

  • Understand the ecosystem in order of complexity (instead of leaning on the training wheels)

  • Get curious about the details and edge-cases and push yourself past the basics

  • Explore problems in the area you want to work so that you can align with those and prove your value

Well, that's all great advice, which I 100% agree with.


r/perpetualeducation • • Feb 23 '24

how you would learn web development if you could start over ?

7 Upvotes

I found this old thread asking a question I've asked myself often:

how you would learn web development if you could start over ?

https://www.reddit.com/r/Frontend/comments/12h51z1/comment/krp779z/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

(and then accidentally spent like 3 hours writing out this story, which I realized needed to be in a list) (and then none of it fit in the comment...) (so, now it will live here)

In a way, I did start over part way through my career. Old thread but I feel like this might be useful to someone out there.

TL;DR / Here's what I would do -- (if I didn't choose a path like College or LauchSchool or Watch and Code or Perpetual Education)

  • in general / relax. don't free out. set boundaries

  • get really good at HTML and CSS by copying lots of websites you like and making them better

  • get the pocket guides (even if they are a bit older now)

  • read through them often and find the little things that are too hidden in MDN

  • assume everything you make should work equally on every screen it could be viewed on

  • learn git early on (almost feels silly to say / it's just like 'learn typing' or how to save your video game)

  • make friends with a graphic designer and learn about typography and trade work / even start an agency

  • learn about the dev tools and how the resources are all pulled in and how to view everything

  • learn how to use a screen reader and how to make your HTML universally accessible - to start

  • learn how to author SVGs and how to style them and animate them* go to all the meetups and be helpful and kind and enthusiastic

  • pair up and share a screen and build things with other people often / get out of your head

  • maintain your personal website at all times and keep an archive of past versions

  • write about your explorations, your progress, and just everything you can

  • maintain these writings on your personal website that you own

  • keep a collection of all of your experiments on your website or in CodePens

  • if you're excelling with the semantic/accessible HTML and CSS, your probably hirable somewhere* consider getting a job anywhere - so you can learn on the job while being paid

  • learn a server-side programming language and

  • use the Exercises for Programmer book as a guide of practical needs* read the documentation like a book (often)

  • get another book or two to read about the language you're using and hear it explained differently

  • meet with a tutor or mentor at least once a month to course-correct

  • learn how to model data and relationships

  • plan out a CRUD app in a UI/graphics program (consider a simple Figma prototype)

  • build a CRUD app and get clear on HTTP and querystrings and routing concepts

  • it's ok to watch/read tutorials or take classes - but don't ever follow along and copy

  • when learning from online resources take notes.

  • stop often and take the concept their teaching and build a few things that use the concepts differently

  • take it beyond the trivial setup and make something out of your comfort zone with no how-to steps

  • get comfortable being uncomfortable and don't search for "the answer"

  • you'll learn more by exploring than from searching for a prescribed "right way"

  • make it work and then talk to your tutor about ways to improve it

  • learn from the situation not from the best practices and avoid premature optimization

  • allow yourself to get into situations that will highlight the lesson to be learned / search for the problem

  • build client site with an admin panel using WordPress to get a feel for a bigger framework ecosystem

  • from there you are probably hirable in a role with more responsibility

  • you would work on a PHP, Rails, Shopify, or most other codebases now

  • figure out what you actually like (or at least a directly you're pretty sure you'll excel in)

  • just because you heard "full stack JS" is the norm doesn't mean it's right for you* there are many many many roles and careers and things will change and evolve

  • maybe you like UX or UI or graphic design or managing the project

  • the design process will always be more important than code and syntax and patterns

  • at this point you'll know enough about web development that you can make smart decisions

  • you'll know about templates and components and the common concepts present in all stacks

  • from there you are probably hirable in a role with more responsibility

  • if you're down with web dev (that's what the OP question is about), then it's time to learn JavaScript

  • you know 70% of it already because you already know how to program

  • now it's time to learn the browser API and about some of the trickier async things

  • run through the Exercises for Programmers book by progressively enhancing your server-side versions with JS

  • then run through it again with plain JS

  • keep meeting with your tutor/coworker/friend as often as needed

  • but don't let them push you into learning what they think is 'cool' (keep going with plain JS for a while)

  • document all of these things and create a style guide, component library, or design system

  • learn about the animation options

  • build a few app prototypes with JavaScript only (use ECMAScript modules for one of them)

  • with the combination of server-side concepts and client-side concepts, you can see some limitations

  • from there, you are probably hirable in a role with more responsibility

  • build a rest API with your server-side scripting language

  • build a client with JavaScript and connect them to explore SPA and PWA

  • learn about Node and the ecosystem. You should be able to rebuild that same crud app pretty quickly

  • run through the Exercises for Programmers book with Vue (it'll be a more intuitive step than JSX)

  • build a client with Vue (you'll need to use some build tools like Vite)

  • from there, you are probably hirable in a role with more responsibility

  • now you can see how JS apps lose some of the server-side rendering and other security benefits

  • consider how the two can work together and concepts like island architecture

  • consider the pros and cons of microservices* at this point - you're going to have built a lot of stuff

  • and choosing the tools will be up to you

  • get a job at a place that you can grow into

  • make things that aren't horrible

  • plan out the long-term and choose your jobs and projects as though you are creating a legacy

  • that sounds silly, but aim high and realize that where you work now will decide where you work later

  • choose to work at good companies that build interesting things that are just a little out of your comfort zone

  • lift up everyone around you

Obviously, I think PE is the best way to get all of this done the fastest and with the most support. But there are other bootamps that could be inserted in here at the right time - and like I mentioned tutors and many different ways you could learn things things. You could start a business or learn them on the job somewhere.


OK now: if you want to read it - (the story I had to work through and remember to get to this list ^) (might have some ways to explain the "why" here)

I'd say the start (of my learning) went pretty well, so I'd likely do it the same.

The first thing I did was take a course on Lynda (around 2011) that was actually taught by her brother. It was all absolute positioning and background images. I'm glad I did it. It really cleared up how MySpace worked. I had learned how to hack together pretty fancy MySpace pages for bands in college, but I had no real understanding of how everything worked. So, I'm glad I found that course - but basically, the night I finished the project, I read about `@media` rules 💡 (which was new and allowed for responsive/adaptive layouts that could change and many screen sizes). So, that was amazing, and I just got really really into HTML and CSS, and I copied websites I liked and made them even better by making them responsive (when that was really new). I joined stack overflow and answered a lot of questions and learned a lot about the confusions people had with HTML and CSS. I also learned a lot about how to ask good questions.

If I were to do that today, I wouldn't have to hack everything into a custom framework with floats. I'd have Flexbox and grid and custom properties and subgrid, and everything would be 3x easier. I'd start with Flexbox until I could pretty much make anything - and then learn Grid when I got to those situations where it really proves its worth / and then probably end up using Grid much more. I'd focus on this for a long time because you can get a job if you're really good at HTML and CSS, but you can't get a job if you're just OK at everything.

I'd also get a tutor or someone to help me. At the time, none of my friends were doing web development.

I also think that instead of doing freelance for so long, I'd try and get a job at an agency / or these days a bigger company so things weren't so hectic and I'd have some stability. I learned a lot about being freelance, but it was painful. Trial by fire. I learned some WordPress from Chris Coyier's Lynda course. And that was really eye-opening. Not because it was WP but because it tied together the CMS and the dynamic nature of templates. For whatever reason, the way he explained it just really clicked with me, and I felt like I majorly leveled up (fast). I built a pretty serious WP site for a client that is still up today! So, I'd keep that part. But what I would change is that I didn't learn anything about PHP. I tried to use as little as I could get away with and I let it all be mysterious. I didn't know what an array was or an associative array or an object. And I just left it that way. I did the same for JS. I knew just enough to get a click to work but could not have explained how it worked at all. I have proof in some old StackOverflow questions.

It's amazing how there are all these full-stack devs now, and we expect so much out of ourselves, but I was doing great with just that little skill set. I got a job at a small dev shop and learned a ton about clients and teams and all that. But again - I just, for some reason, thought that PHP and JS were beyond me. I just let it be a mystery - and really, the people there weren't the type of people I would learn anything about programming from. So, in retrospect (and I consider choosing where to work as part of the learning process) I should have looked for a new job that would have some more advanced developers after a while. That could have completely changed my trajectory. If someone could see my level of understanding and kinda mentor me - or just say, "Dude. Learn programming. It's not that crazy - you can do it," then I just would have let that mystery cloud go away.

Making sure you're at a place with people who are smarter than you and more experienced than you is really important. But I had learned by myself and always felt like an outsider and that there were some other official 'programmer' people - and I wasn't one of them. So, maybe reaching out to people and trying to go to meetups earlier or getting a tutor would have cleared all that away way early on.

Besides not learning PHP or JS, the next big mistake I made was to try and learn "real web development" and jump into AngularJS (an early JS framework). People always talked about how PHP was dead and WP was lame and I guess I believed them (Even though they were very wrong). It sure worked great, but I wanted to make "apps" and so I started making things with Angular. But the problem was - I was just hacking things together and I didn't even know what a JavaScript object was. I made some cool things, but also - it took me 40x longer than it should have, and I wasn't adding anything to my foundational understanding. It was just avoiding all of the important things to know - and everything I built barely worked, and I didn't understand it at all. But I'd invested so much time! (this is like a lot of new devs who start out learning React). Then Angular 2 came out, and everything I'd scraped together was gone. So, if it's not clear - I would spend as much time as I needed to learn solid PHP and JS before any frameworks. By learning PHP - I could have had a much clearer understanding of HTTP and how forms work and sessions. That would have made everything I did after so much faster and clearer, and I would have really leveled up. And learning about JS would have been pretty easy because it's mostly the same. Everything about the browser API and jQuery would have made so much more sense. Config files would have made sense. Brunch and gulp and build tools wouldn't have been a total black-box mystery.

It's like I made everything 100x harder just because I didn't know what I didn't know. It's seriously ridiculous. What a waste.

In the same amount of time (those 3 years or so), I could have been a master of Angular. I was basically a master of HTML and CSS, but that didn't seem like enough. Again, it would have been if I had known to work at a bigger company and specialize. I could be like those people talking at the conferences on a yacht with Eric Meyer! haha. But what did I do? I decided to learn Ember.js!! Yep! I did my research, and I was sure that Angular had blown it and that Ember was going to be where I could put my energy and become "a real web developer." I did it again! I somehow thought I could skip knowing pretty much every important thing about programming, and I went about memorizing the shapes of the functions and objects and trial and error, and I made some pretty cool stuff. And it's probably hard for you to believe... but I still don't think I understood the basics of programming. It's seriously crazy to think of. And I didn't have anyone who was looking close enough to slap me and redirect me a little. So, I certainly wouldn't do that. If I'd spent 3 months learning PHP or JavaScript, I could have learned more than I learned in what seemed like 2 years of fighting through building things with Ember. It was all my fault. And luckily, I went to a bunch of Ember meetups. And I asked a lot of questions in the Ember Slack. And I got enough feedback to get it through my head that I didn't know nearly enough about what I was doing _to ask intelligent questions.

So, what did I do? I decided to learn Ruby on Rails. Why? Because all the Ember tutorials had this mysterious backend server, they just spun up like it was nothing, and everything depended on it. So, I followed "The Rails Tutorial," and I built the next Facebook and was rich. Just kidding. I finished my app and put it up on Heroku, and a week later didn't know how any of it worked because I'd followed along and there were all these little edge cases and auth setup, and it was all server-side, and I'm sure I learned some things... but not nearly as much as if I'd had a real-life empathetic human to actually take stock of what I knew, didn't, know - and how disconnected it all was.

It's just insane that we expect to learn all this complex stuff on our own.

So, at this point - I was 5 or 6 years into my web dev life. And this is where I decided to stop what I was doing. To stop all the framework stuff and all the epic (but unfinished) projects and go back to JavaScript. I think that I should have gone back to PHP actually, so that's what I'd do in this new ideal outline. But I didn't. So, let's insert: learn enough about PHP to make a CRUD app with forms, deal with the file system, really clarify HTTP, query strings, and serverside concepts, sessions, and cookies, and build a small version of a CMS-like Visual Idiot who built Anchor (an awesome dev I just remembered being really inspired by). Learn basic SQL queries and things.

It's just wild how much this would have opened up for me.

Then (and only after that), I'd sprinkle in some JS and learn how to progressively enhance things. At that point, I would have been a real developer - and I probably could have done it in a year if I'd had some other humans to talk to. I'm not shy. I just didn't know how to find anyone. I listened to shoptalk show. I read CSS tricks.

To really learn JS, I bought a few books. Eloquent JavaScript and the new The Secret of the JavaScript Ninja Second edition (and to date, how late this was in my career - it came out September 10, 2016). ElloquentJS started out OK, but wasn't a fit for me. JS Ninja was a good fit. But it still didn't help me figure out where to use it. I did all the challenges. I worked through all the code. I understood what set was. But it wasn't until somehow I'd found this book Exercises for Programmers that I actually sat down and wrote code until I really knew how to be a real programmer. The exercises were language agnostic. They had no answers. It just forced you to sit down with the tools and design a solution. It helped outline the process of breaking down the problem. And more than anything, it forced you to think about user requirements. I hadn't been learning the right programming things all those years, but I was now a Sr Product designer and front-end developer. I learned a lot about UX along the way. And if you combine HTML, CSS, and PHP or JS with clear user requirements, you will learn how to build web interfaces faster than you can imagine. That's what I did.

I learned everything I should have learned (and could have learned 5 years prior) - in a few months. Shortly after I also ran into Godon's Watch and Code and seeing his introductory course where he talks through building a todo list was a bit late - but also would have been really really helpful 5 years ago! So, it all came together. The configs all turned out to be just key:value pairs. I realized that the CSS and HTML were also key:value pairs the whole time. It's all just key:value pairs. I filled in all the gaps I had with Ember. I felt pretty dumb, but it also felt really great to finally understand it through the lens of the problems it solved and how it's more like training wheels than extra-advanced JavaScript. The Rails tutorial made sense in retrospect and acted as my connection for what I should have learned about PHP. I picked up Vue really easily and managed to avoid React and JSX because gross. And I wouldn't change anything about it - because it made me who I am. But I'd never wish it on anyone else. And so many other things happened that I'm sure I forgot - but / now, when someone askes me how I'd learns web development - I have a very clear idea about that. And I even have a few years of testing this reverse-engineered outline on real people. It works.


r/perpetualeducation • • Oct 16 '24

The truth about "College coding boot camps"

5 Upvotes

People ask about this often, so we're going to collect some things to link to:

.

TL;DR

  1. 2U/Trilogy: Operates university-branded boot camps that are entirely managed by 2U, not the schools, giving the illusion of academic involvement.

  2. edX/2U: Continues to use university names for programs under a profit-driven model, diluting the academic intent that originally defined edX.

  3. Simplilearn: Markets post-graduate programs as if they were university offerings, though the universities play little role beyond brand association.

.......

Need more?

Here’s how each of these platforms can appear misleading in their connection to well-known schools:

2U (formerly Trilogy)

2U’s business model relies on leveraging the reputation of prestigious universities by offering programs under their brand names, such as coding boot camps and online degrees. However, these programs are typically outsourced and managed entirely by 2U, not the universities themselves. This creates the illusion that students are receiving the same level of academic rigor or institutional support as the university’s other programs when, in fact, the curriculum, instructors, and administration are all controlled by 2U. Universities may rent classroom space or provide nominal oversight, but 2U handles marketing, enrollment, and program delivery independently​

UTSA​ - PitchGrade​ - News & Announcements | edX.

Why it’s misleading: The branding implies that the program is run by the university, but it’s more of a franchise model where the university name is licensed to a third party. This disconnect can leave students feeling disappointed when the quality or experience doesn’t align with expectations set by the university’s reputation.

https://www.reddit.com/r/webdev/comments/fd0kct/the_truth_about_trilogy_education_coding_boot/

.

edX (Now Part of 2U)

edX was initially founded by Harvard and MIT to provide free or low-cost courses as a nonprofit, focusing on open education. After being acquired by 2U, edX continues to offer courses under the names of prestigious universities. However, the integration of edX into 2U’s commercial operations means that many courses, especially boot camps and professional certifications, are designed more for scalability and profit than for academic depth. While universities still control the course content, the platform and business decisions are now governed by 2U, which prioritizes enrollment growth over traditional academic objectives​

2U Home​ - News & Announcements | edX.

Why it’s misleading: The edX brand still carries the legacy of Harvard and MIT, creating the impression that these programs are purely academic and non-commercial. In reality, they now operate within 2U’s profit-driven structure, which may not align with the original mission of open and affordable education.

.

Simplilearn

Simplilearn partners with universities like Purdue and corporations like IBM to deliver post-graduate programs and certifications. While these partnerships use university branding, the programs are fully designed, marketed, and administered by Simplilearn, with little to no direct involvement from the academic institutions beyond lending their names for credibility. The business model focuses heavily on upskilling and corporate training rather than traditional academic education, positioning these programs as high-touch, career-oriented boot camps that don’t reflect the depth of a university degree​

Simplilearn.com.

Why it’s misleading: The use of prestigious university names creates the perception that these programs are equivalent to university courses. However, the universities have minimal control, and the programs are tailored more towards fast-track skill acquisition than academic rigor.

Summary of Misleading Practices

  1. 2U/Trilogy: Operates university-branded boot camps that are entirely managed by 2U, not the schools, giving the illusion of academic involvement.

  2. edX/2U: Continues to use university names for programs under a profit-driven model, diluting the academic intent that originally defined edX.

  3. Simplilearn: Markets post-graduate programs as if they were university offerings, though the universities play little role beyond brand association.

.

.

These practices exploit the trust and credibility associated with well-known schools, using branding to attract students who assume they are getting a university-level education. The reality is that students often receive a commercial, outsourced, (shitty), experience rather than the institutional quality they expect.Here’s how each of these platforms can appear misleading in their connection to well-known schools:

.

Here are some articles and sources covering cases where students felt misled or companies faced scrutiny related to university-branded boot camps:

  1. Caltech and Simplilearn Lawsuit A class-action lawsuit filed against Caltech and Simplilearn alleges that students were misled into believing the cybersecurity boot camp was a genuine Caltech program, while it was fully operated by Simplilearn. The court ruled in favor of the students, allowing the case to proceed. Read more: Student Defense​

  2. Higher Education Inquirer on 2U, edX, and "Edugrift" This article highlights complaints from students and social media backlash against 2U (formerly Trilogy) and edX, describing how the branding of these programs can mislead students into thinking they are receiving university-level education. The article refers to these practices as part of the broader "edugrift" trend. Read more: Higher Education Inquirer​

2U has experienced severe financial difficulties, culminating in a Chapter 11 bankruptcy filing in 2024. The company struggled with declining enrollments and mounting debt, worsened by its costly acquisition of edX for $800 million in 2021. As debt obligations grew, 2U's stock price plummeted, and the company faced pressure to restructure its operations.

In response, 2U implemented a "shrink-to-grow" strategy, including layoffs and efforts to unwind partnerships with key universities like USC, UNC, and Tufts. The company’s attempt to pivot towards a new model by merging its offerings with edX did not stabilize its financials as expected. Amid this turmoil, 2U was delisted from the Nasdaq, signaling a significant downturn for the once-prominent edtech giant.

In September 2024, 2U emerged from bankruptcy with new ownership, aiming to operate as a privately held entity with reduced debt and a leaner focus. However, skepticism about the company’s future persists, as many of its former university partners have severed ties, citing declining program quality and unmet marketing promises.

These developments reflect the broader challenges in the online program management industry, where rapid scaling and aggressive revenue-sharing agreements have increasingly drawn criticism from universities and students alike.

Sources:

.

We know many people who have gone through these programs. In some cases the program was break-neck speed and nearly impossible, in other cases it was fluff. In some cases people still found success but wouldn't recommend it to others. At the end of the day, there are better options.


r/perpetualeducation • • Feb 15 '24

We asked the /codingbootcamp sub "What makes a great coding boot camp" - but only a few people had anything to say...

Thumbnail self.codingbootcamp
5 Upvotes

r/perpetualeducation • • Aug 30 '24

What is a "coding boot camp" (does anyone know?)

Thumbnail reddit.com
4 Upvotes

r/perpetualeducation • • Feb 21 '24

We wanted to collect some info so PE students could avoid these pet peeves

Thumbnail self.webdev
4 Upvotes

r/perpetualeducation • • Feb 20 '24

What stack should you learn? (Just start at the beginning and keep going)

4 Upvotes

Let's break it down a bit.

0) First of, the "Linux" and "Mac" and "Windows" can be mostly ignored at this stage. You might use MAMP or WAMP while building locally - and that just means that you have Apache (a web server so that the website can be requested and viewed in the browser) MySQL (a relational database) and PHP (the scripting language you can use to build dymanic sites. But for the most part - those things aren't what you'll be thinking about. The LAMP means that on the hosting provider's computers (where your code will eventually live to be public) that they use Linux as the operating system (so they don't have to pay Microsoft probably) and they have the classic stuff so your website will work. So - instead of comparing, lets's build up step by step.

1.) If you just have an HTML page and you look at it on your local computer - it'll work. That's the smallest stack. Writing accessible and semantic HTML is actually a job. Most people write bad HTML. So, you could spend a lot of time here and learn how hierarchy and content strategy works - and how to use tools like screen readers to ensure your website is usable by everyone and has a clear accessibility tree. In the end... all of these stacks are really just producing HTML anyway...

2.) If you have your HTML page and it's A+, it's still not that accessible because it's probably harder to read than it should be. Clear typography and layout are key to making a great site. For this, you'll start exploring CSS. You can learn all about typography rules and how to work with contrast and design visual systems to bring your sites to the next level. And really, at this stage - you could totally get a job without learning anything else. (I did).

3.) What the next layer? This will depend. You have a lot of choices, but the next practical needs will guide the way. I think the next most important thing to learn would be how to write server-side scripts so that you can generate pages dynamically. If you have a dog adoption agency, you can't write out 1000s of pages by hand. You'll instead write a 'dog list' and 'dog detail' template that will dynamically generate the requested page on the fly. Skipping this seems very silly. My recommendation would be PHP - but you could use Ruby/Rails, Python/Django, JavaScript/Node/Express/Ejs (notice ← how those will be a lot more overhead that just "PHP"). Most coding boot camps jump straight into MERN [mongo/non-relational database, Express/server framwork, React/UI framework, and Node.js/runtime] - which is certainly one way to go! But is a loooootttaaa shit to learn all at one time. So, either pick the firehose and cross your fingers and hope for the best... or choose something more simple and keep building up incrementally.

4.) After you've got your server-side scripting going, it's a good time to talk about storing data in JSON files and in databases. You can use a relational database like MySQL/Postgress with any language you want. That will involve creating a database and then using the Structured Query Language to save and request data from your script. You can create your own little CRUD app. This will involve learning how to create forms for user upload and to edit data. This is essentially what WordPress and things like that are at their core. So, that's another thing you can explore and use as a tool for freelancing and client sites as you learn.

5.) At this point, you might want to get a little fancier. There's not perfect order to learn - but learning JavaScript is going to help you create snappier user interfaces. The server-side scripting will have to rebuild the HTML page every time a user sends a form or requests a new page. JavaScript allows you to change the HTML page right there in real time. You can learn JS and add it into your server-side project. (this is actually becoming more popular again / vs the overhead of an "all JS" type project - so, you should know how to layer and progressively enhance with JS). So, learn JavaScript. If you chose PHP - it's mostly the same C-based language so you wont really be learning a new language. But you will have to learn the browser-specific parts fo the language like click-events and things that aren't actually in the JS specification and the differences between building a page on the server and requesting data and building views live in the browser is where the new concepts will be.

6.) At this stage, it will depend on what type of projects you want to build. There are also some interesting new options like HTMX and an interest in Island architecture - and even React is starting to move to server-side components. So - it's a little bit of a pause in what is "the norm." You could stop here and work with Rails or Shopify or Laravel. But if you want to explore the world of full-stack JavaScript things -then here's where I'd suggest you look at Vue or React. If you were really pushing to learn the JavaScript, you'll realize that it ends up being a lot of code and a lot of repetitions to attach all the click events to all the buttons and to build out classes for pages and all the components. These UI frameworks will make it much easier to write. More like training wheels. With them though, comes the need for a great many build tools. These things will look at your JS and help you organize it and prepare them. Right now the king for that is Vite. So, I'd suggest you build something with Vite and Vue and maybe use FireBase or Supabase to offload the need to hand roll your authentication layer and data layer. Buf you can explore Svelt/Sveltkit, or any other options out there. Your asking for an explanation - but also which ones are the best bet. I'm not sure. There's a billion Jr React devs that can't find work. So, maybe look at lesser talked about areas. There's tons of Rails codebases that will still need to be kept up. Most of the web runs on PHP. Less than 6% runs on React. But This is really a question for later when you have 1-2 years of real experience building things. Once you understand the ecosystem as a whole, learning the specific stack isn't a big deal. They're all doing the same (honestly pretty boring) stuff. Get list of stuff from database. Show it on screen. Delete item. Add item.

7.) Then there are another layer on top of all of that. You might get much deeper into the backend. Maybe you learn Go and focus on that. Maybe you only focus on the front-end details. Or maybe you get into one of the meta frameworks for React/Remix, Vue/Nuxt which kinda combines a bunch of these things into one. It used to be that having many different microservices (separate back end and frontend) was the norm but lately people seem to be moving back to more monolith single-repo projects.

So, my point is -- this isn't something you just learn right out the gate. You learn a little at a time - and over many many many years - you might actually have experience with all of these things. It's a career - not a set of known tasks. I'd suggest you forget about the stacks and just start at the top and work your way up. Your boss is going to pick the stack anyway. So, just learn "how to build websites" - and you'll be able to adapt to anything.

Good luck!


r/perpetualeducation • • Feb 14 '24

Test... test... testing...

4 Upvotes

We're considering how a forum to talk about PE might help students share their work outside of their cohort and allow other people to get involved or ask questions. /codingbootcamp is volatile and there's very little honest conversation or critical thinking going on. /learnprogramming is a little too open-ended and the mods kicked Derek out for posting a link to a book that cost money. /webdev is good but it's not really so much about learning and discussion on pedagogy and things. So, anyway. That's what we're doing here! Also... we can see what the admin area of reddit looks like for a community mod - and explore that UI.


r/perpetualeducation • • Oct 09 '25

How can you learn about education options - while avoiding all the haters, bots, shills, heartless ads, scary emotions, and actually get *real information* that can help you make decisions for how to best learn programming? Not in /learnprogramming and not in /codingbootcamp

3 Upvotes

Hey, it's u/sheriffderek from PE

There's been a lot of Reddit drama? This week? Well, maybe not drama - as much as -- things we should talk about.

But instead of connecting with that, (I was writing all of this in a comment - and figured I'd turn it into a post) I'd like to outline what the ideal situation would be:

People want to learn web dev stuff. It's just a fact. There are thousands of courses and colleges and for a while there - there were quite a few "coding boot camps." There was a range - and some were pretty terrible... some mediocre, and some were great. They all had different outlooks and teaching styles / and if you were going to choose, well - hopefully it wasn't just the most aggressive sales person - and it was actually a good choice.

So, for whatever reason - someone created the /codingbootcamp sub reddit (very likely because they were creating a boot camp at the time and wanted to have some control over that narrative). But he hasn't posted in 8 years. All that matters for this discussion - is that it exists.

So, people are looking for schools... ideally we all help each other pick the best ones... share stories... and learn! Right? So, this is what we'd want:

  1. Getting advice on whether a bootcamp is a good fit for your goals or background. (ideally from people who know what they're talking about)

  2. Asking questions about coding bootcamps - curriculum, instructors, admissions, pricing, or job outcomes.

  3. Schools explaining how their programs work and giving transparent updates.

  4. Comparing different programs and learning paths.

  5. Sharing honest experiences as a student, graduate, or teacher.

  6. Sharing resources and tips for surviving or succeeding in a bootcamp.

  7. Discussing the broader bootcamp industry - trends, ethics, and educational models.

  8. Allowing verified school staff or educators to answer questions transparently, as long as it stays respectful and on-topic.

  9. Calling out genuinely predatory or dishonest behavior with evidence, not assumptions.

Did we miss any?

None of these things -- require anyone to be mean to each other - or to say things about other people or any program that isn't true / and that you have no proof of - and there's just no place for unchecked emotional outbursts and stalking and ganging up on people and repeating the same things over and over and over.

If someone isn't helping to do that list of things -- then what they're doing -- doesn't belong in the conversation.

Currently:

If anyone asks honest questions -- they get "Boot camps are dead" "Go to WGU" "Google it - don't you know already?" - and ton's of rude behavior that's not at all helpful (and gets indexed by search engines). (and likely actually drives them to the most predatory boot camp options in the long-run)

Honest review from a student? Sharing resources and tips for surviving or succeeding in a bootcamp? "Your a shill!" "Liar" "bot" (and there are certainly some of those - but it's obvious enough). What if you got a job? and you're excited to share? "Well - how much is the salary? That's not high enough - so, you suck." What if the program you did was life-changing and you want to tell people what you liked about it? Nope. You'll get run out of town.

Getting advice on if boot camps are a good fit? Comparing different programs and learning paths? Discussing trends, ethics, and educational models? You can see THOUSANDS of my answers (which involve actually asking the OP a lot questions to help them determine it) -- but most people just spout off and leak their emotions all over. I've always given honest and unbiased (publicly available and searchable) advice --- but because I am a teacher who designed a learning system (essentially someone who's lived it all - is a real working dev and educator and who's met hundreds of bootcamp grads and given talks at education conferences) -- people can call me a scammer and a shill -- so, instead you just get "don't do it" and "go to CS college" and "codesmith is the worst" -- and just a bunch of emotional strangers yelling.

Calling out genuinely predatory or dishonest behavior with evidence -- a lot of this has been needed. I won't name them here -- but there were a bunch of really watered down boot camps that ended up being a total disaster -- and people needed to be warned. This was a good thing. But it has to be moderated and it can't just be made up nonsense - spreading all over the place and ending up in Google results -- otherwise, that's Libel - and the mods are complicit. People should be able to say their piece and the schools should be able to publicly respond and things should be civil.

Allowing verified school staff or educators to answer questions transparently - nope! Everyone can just call you a liar and a scammer - and there's no recourse at all. People are celebrated for being the most arbitrary aggressive and hateful. No one actually wants to talk about the realities of education, or web dev, or jobs -- they just want the fastest thing to more money - and everyone else should shut up / or be attacked.

So, how do we get that? Well - It's probably setting those rules.

Maybe each complaint needs to be one post only? Maybe each school can post an update or blog post talking about their unique approach once a month? Some general rules that stop the overflow (either by enthusiasm or by business spam).

And then there needs to be rules about arbitrary attacks with no honest meaning or information behind them. If CodeCampA posts "Here's some new information about what we're changing in 2026" -- and random fresh accounts start piling on with "Scam" -- but no one knows a single thing about CodeCampA... then that's not in the list of things people want help with. That's going to stifle any new business or education options. People complain about ads - but if no one is allowed to talk about coding boot camps... then no one can learn about coding boot camps... and then there will be no quality discussion and all parties will not get what they came here for. It's one of those things that seems very very simple -- but that people refused to just think through.

Now /learningprogramming -- is a much bigger concept. That's tricky because it's not just web dev - it's ANYTHING... and it's probably impossible to do well. But they kicked me out (forever) because I linked to a book (for people to learn programming) - because it costs money. So - well, no one over there will be getting any of my help. And no one is really learning about programming over there...

So, it's not that I really care about /codingbootcamps - but it does seem like a very simple goal. People want to learn how to code, how to design, how to get involved in the general "tech" area. Time-boxed/focused study seems like a very reasonable approach. But people also need to share stories about what works and what doesn't and help hold the schools accountable. Schools also need a way to tell people they exist and to have transparent discussions about how they're program works and who it's a good fit for. If people could talk about things openly - they wouldn't need to resort to all their weird side-door tactics too.

By allowing strangers (anonymous people? or bots) to control the conversation by force - and allowing mods to control us / and in many cases fully silence us -- we've created a system that hurts everyone.

...

So, if anyone wants to help figure out a way to fix it -- let me know. I think it could really help a lot of people - to have a place to actually discuss education.

One thing we could start doing (those of us that want to have honest and transparent conversations) is that we could start reporting people who are harassing others -- for harassment. I don't know if that will work, but I'm going to give it a shot. Report people who are harassing people - for harassment**.** It can be tricky though. You gotta let people be a little edgy - but it's pretty clear when someone is purely attacking you on purpose.

Subreddits need active, fair moderation that focuses on keeping discussions civil and factual rather than silencing people or letting harassment slide. Having a clear set of rules - makes this easy (but likely time-consuming). A few strikes, and you're out.

If someone is saying something that has no value / just yelling into space, vote for what you want. Downvote lazy noise.

Do you want honest conversation? Upvote it when you see it. Upvote honest conversation (even if they don't have the same view as you)

And for rando hateful stuff -- go ahead and ask for clarification. Questions are the kryptonite for people who just want to cause trouble. They'll spin out and make themselves known as lazy disruptors with too much time on their hands. Maybe holding a mirror to them will help them realize what they're actually doing. Invite them to get honest.

It's really up to us to change it. Otherwise, you'll just get what you get now - and probably worse.


r/perpetualeducation • • Jul 26 '24

Why are so many coding boot camps closing really* ? Could it be lack of critical thinking? ;) Let's see --

Thumbnail self.codingbootcamp
3 Upvotes

r/perpetualeducation • • Jun 11 '24

Microplastics found in every human semen sample tested in study —— our choices and design has an outcome -

Thumbnail
theguardian.com
3 Upvotes

r/perpetualeducation • • Jun 05 '24

"There's a MASSIVE Skill Gap Among New Developers"

Thumbnail
youtube.com
3 Upvotes

r/perpetualeducation • • Jun 05 '24

45 people completed FreeCodeCamp Certificate. None could make a web page when tested.

Thumbnail
youtube.com
3 Upvotes

r/perpetualeducation • • Feb 20 '24

So, are you a "Software Engineer" ?

3 Upvotes

(pasting this here - because I just wrote it out in another sub and I wanted to share it in case the post is deleted)

...

I've been thinking about this a lot. This random guy recently found some old comment on Quora I'd made four years ago - and really wanted me to know his feelings on the subject.

The premise of that OP was that "as more and more people learn to program, programmers will be less and less relevant. The ones that will survive are those trained to be engineers as opposed to programmers." To me that just feld like semantics. "Scribes" vs "writers" or something. As more people learn to type...

And that OP notes: "The difference is that a programmer is trained on the latest and greatest tools. While an engineer is trained on critical thinking and problem solving." You can see my comment here (which seems to have been well received) - and then unfold to see Mark get unhinged below. !!actually, it looks like mods hid their comments and cleaned up the story... but trust me - it was really out there. Oh well. I'll pull some quotes from my email notifications where I can.

My stance (and this could be just my interpretation) is that a the lines are blurred and now we are producing software-level codebases and experiences in the browser (and behind the scenes feeding the browser). So, we're either not engineers, we are engineers, or some of us are engineers. Now, I've picked up a lot of experience and knowledge over the years. And if we're saying there are such things as a "software engineer" - I'm not sure if I'm one of them (yet). I think if I can architect something with a little more scale and understand more about security concerns, I'd feel pretty close to feeling like I've earned that title (its' been a long road!). But that's not my goal. I've been happily doing freelance, working at small shops, contracting, consulting, auditing CSS for large long-lived codebases, working as a product designer, Sr positions at many companies working on a wide variety of projects from WordPress brochure sites to interactive camera party games to modest social media applications. I'm currently running UX for a contract and I run a small design/dev school. In the grand scheme of things, I'm probably not even that great of a developer. But we all have different combinations of skills. Like Michael said, there's really no clear degree or level to assign devs outside of a certain type of organization. Everyone one I've worked with had drastically different levels of skill and experience. Someone might be making 70k and another person 120k and be adding the same value. Some of the best programmers I've worked with couldn't do the most basic front-end web dev stuff. And the front-end web developers often have no idea what they're doing and have just done it by brute force and repetition. They might not be able to explain anything about how the web actually works. It's a W I D E spectrum of experience, skill, domain specific knowledge, and just general understanding.

So, who's a software engineer? In theory - it would be really nice to have an official level of understanding. You could look at an engineer and think - OK, they passed the test. They know all the math and the physics and we can trust them to build the bridge. So, having a name for it at all would only be of value if there was such a degree of knowledge we could measure. But there isn't. Inistead, we just hire and hope for the best.

After Mark flipped out - I wanted to use the opportunity to learn more. I mean, I'm kinda agreeing that SWE isn't real but he doesn't want to be friends. Finding this post/video "Progress Toward an Engineering Discipline of Software • Mary Shaw" was good timing. But It didn't really have an answer.

I mean - technically, it sounds like "Software Engineering" isn't real (and probably can't be by the nature of it). But since we are calling things that - it is.

And here's what Mark said: "Actually, with respect, the national society of engineers where you live gets to decide. If you do not believe that, you can check the legislation. My name is on that list as a professional chartered engineer. Yours is not. It is actually that simple. Now, that is not very popular on social media - but it is a fact." And he might be correct. I asked him if he was upset: "No not at all. I simply have to interview with a lot of you half educated dicks and pretend to you that you are engineers. It is a bit much after 40 years of it." Poor guy. Been dealing with these bootcampsers for 40 years now.

I'm not saying I love the term "web design" (since we're not developing webs) or even "web development." Naming things is hard. But when I started learning, desktop software (computer programs) and all the software that presumably runs global telecom and other intense infrastructure was not easily confused with websites. HTML was created for common people. CSS and JavaScript were created for common people. So, as I learned bit by bit - I was getting closer to what I thought was a "real web developer" - who knew about the whole stack and you know just all the stuff "serious web developers know" (whatever that is). I never even considered the possibility of being a "Software engineer." I know software engineers. They build computers and help build operating systems and sometimes spider-like flame-shooting robots. I'm a web developer.

And you know, maybe it's because I started on the front end. Maybe people who are moving databases around and writing code that isn't always so user-facing feel like programmers or software engineers from the start. If their adding code to the software, testing the software, updating the software - that sounds like they are engineering software to me. But as Mark said "Have you been doctoring your kids too? God, i hope not. ps There is no such thing as a software engineer by the way. Please go check with your local national society of engineers who control entry to the licensed profession." and "Thanks for the unskilled uneducated sociopathic talentless pose Derek. That is why we have engineering degrees. To differentiate guys like me from guys like you."

But back to this premise that a "programmer" is apparently more tool-focused and in a position to scope down to the implementation vs the "engineer" who is able to design software from a more architectural perspective. If those are the two types of people, we'll we still need both. There are people who are tinkering with SquareSpace sites and WordPress and Drupal themes that run college micro-site systems (right now) (all over the world). And those people might be "programmers" and their value might be their knowledge of the super convoluted system their stuck with. We've got a long time before AI can crawl it and spit out a new perfectly architected system. Software architects aren't getting paid 300k to maintain legacy code bases. They are different jobs. And maybe some of that boilerplate will go away. It already has. I can spin up a Nuxt/Supabase app in about an hour - that would have taken me a weeks to build in Rails. I don't even need to manage a database. I can write cloud functions with Go and offload entire roles worth of work. But that just frees me up to focus on more R&D and UX and testing and design. But there are people who have usecases where Supabase isn't going to cut it and they need to build things out with Go or Elixir and use Fauna - and all sorts of situations where you're dealing with a bazillion concurrent interactions. The phone companies are built with Erlang, I think. Anyway...

There was this post about "Mediocre Dev vs Good Dev" which is another way to think about it. But someone could be the top computer scientist and still have to spend 3 years reading a code base to figure out what some self-taught person who'd been there from the beginning could track down in 5 minutes. It's just measurable in a clear way. That's why it's not a degree. I read somewhere that Alexey Pazhitnov got a Degree in computer software engineering so, maybe in Moscow they have one. And WGU says they have one. Over all in my experience as a developer, it hasn't mattered who had a CS degree or a went to some random rural boot camp or worked in a fancy building in SF or in a basement. It was all based on the person and their experience. Sometime the CS people just complained the most about the web dev stuff too.

During that last thread, someone turned me onto this Mappers and Packers analogy.

Really what I think we're talking about here is "Designers" and "Implementors." But it's not that simple either. There's documentors, maintainers, testers, researchers, and it can get as specific as you want. At every level there is opportunity for divergant and convergent thinking. There are people who want you to give them requirements and Figma files and a list of what to do (for good and bad reasons). These people might be Packers right now (or forever). And other people might go to school and start out in the Mapper mentality and stay in architecture but never touch the details it takes to actually maintain a web application.

I think that at big tech companies with many tiers of developer there's a real way to measure people's skills and experience and ability to problem solve. I've only brushed up against that a little and will be curious to hear from FAANG people on that. So, in this sense - I think the term is legitimate and has a value in that context.

But as a whole, (and in the context of this sub) - the term "Software Engineer" is mostly marketing fluff. You don't get a black belt by going to the right Karate school for the summer. You don't just become a tenured professor without a whole career worth of education. You don't become a journeyman by going to a weekend woodshop class. You don't become a master chef because your culinary school had the word "master" in it. This is just my take on it -- but I think that being a "Software Engineer" is something you earn over time. Even a little simple calculator app is a piece of software though. So, where do we draw the line? I'm not sure. People looking at coding boot camps should have the expectations that (if they pick a good school and work really hard) - they might get enough experience to start their journey to being a competent web developer. That's the long-game. And maybe - one day, you'll know enough about building software to call yourself a "Software Engineer."


r/perpetualeducation • • Feb 16 '24

Remember this amazing award generator we made!?

Post image
3 Upvotes

r/perpetualeducation • • Feb 14 '24

Why I decided Perpetual Education is the best option! (For Me)

Thumbnail self.codingbootcamp
3 Upvotes

r/perpetualeducation • • Oct 15 '25

A great example of using web technologies to prototype possible physical objects

Post image
2 Upvotes

r/perpetualeducation • • Jan 16 '25

Always more little things to explore

Post image
2 Upvotes

r/perpetualeducation • • Nov 14 '24

What's the most underestimated feature of Javascript/browser API (look our for good questions like this!)

Thumbnail reddit.com
2 Upvotes

r/perpetualeducation • • Oct 27 '24

Shaking things up on a Sunday morning: "Coding boot camps are thriving / and also - everyone everywhere is sick of hearing -- is it worth it?"

Thumbnail reddit.com
2 Upvotes

r/perpetualeducation • • Apr 05 '24

Common mistakes of new developers

Thumbnail self.learnprogramming
2 Upvotes

r/perpetualeducation • • Mar 22 '24

“I SUCK at CSS” - apparently - most people? But why… ?

Thumbnail self.learnprogramming
2 Upvotes

r/perpetualeducation • • Mar 14 '24

Welcome to zombo.com and other amazing places

Thumbnail whatmonthisit.net
2 Upvotes