Which dev course would you study?

Which dev course would you choose?

  • Machine Learning

    Votes: 2 14.3%
  • Data Science

    Votes: 1 7.1%
  • Advanced Python

    Votes: 2 14.3%
  • Full Stack Developer

    Votes: 7 50.0%
  • UX and Graphic Design

    Votes: 0 0.0%
  • Cloud computing and Amazon AWS

    Votes: 1 7.1%
  • SQL Database Development

    Votes: 1 7.1%
  • Mobile App Development

    Votes: 0 0.0%

  • Total voters
    14

bernard

BuSo Pro
Joined
Dec 31, 2016
Messages
2,527
Likes
2,217
Degree
6
Let's say you would be able to follow a dev course at a quality university for free for a couple of months. We're talking classroom and feedback and tutoring and all that, so not just an online course.

Which of these options would you feel would be the time best spent with regards to both the job market right now and the future of dev and marketing.

Which would you feel would give someone the best opportunity to freelance? Which would be best for creating marketing tools? Which would be better for getting a well paying job?
 
You'll ultimately have to cover a bunch of this to do something like creating marketing tools. You'll need a database, UX & graphic design for sure, you'll have to do a lot of front-end and back-end work so a full stack course would be good (which will include a lot of Javascript, too).

For me it's easier to tell you what I wouldn't do if I could only choose one, which would be:
  • Mobile App Developement
  • Cloud Computing & Amazon AWS
  • Machine Learning
  • Data Science
  • Advanced Python
I wouldn't do machine learning or data science until I could build out databases, front-ends, back-end scripting, and all of that. You probably won't need machine learning at all, in my opinion. Data science I could see becoming useful later depending on how much data you house and what you do with it before presenting it to the user.

I'm voting out "Advanced" anything because I'm assuming that's going to be a whole bunch of theoretical, hypothetical crap you may not encounter in your actual work. My philosophy is to not worry about it until you run into it in the actual trenches.

I'm trying to figure out what puts the cart before the horse or not, and chase it all the way back to the basics as a starting point, but not so far back you aren't getting a good use out of it. I'm choosing Full Stack Developer. If you get through that, you can pick up the database and UX & graphic stuff on your own.
 
I'm trying to figure out what puts the cart before the horse or not, and chase it all the way back to the basics as a starting point, but not so far back you aren't getting a good use out of it. I'm choosing Full Stack Developer. If you get through that, you can pick up the database and UX & graphic stuff on your own.

You'll never be out of work as a full stack developer I would imagine.

I assume a full stack developer would also be the one creating custom themes and plugins and such with Wordpress.

It does feel slightly ... boring .. and lagging behind the curve.
 
Full stack is never a bad idea. You'll always have work, and it pays decently well.

But from my experience in the corporate / startup / freelancing worlds, full stack may be the easiest selling point, but it also has the most people selling it.

I'm going to lump machine learning and data science together because they share two important characteristics:
  • Every company thinks they need it
  • 90% of companies aren't ready for it.
Most of your work in those fields isn't taught in ML/DS classes. I was a data scientist most of my career, and my work was database development, cloud architecture, full-stack development, and reporting. Knowing ML was useful mostly for the advanced stats knowledge.

When freelancing for ML/DS, your main job is to figure out what the client actually needs. And most of the time, it's reporting, DB, or API work.

So from a "which would be most useful" standpoint, I'd pick full stack, SQL database, or cloud computing over ML/DS, no question.

Full stack is the easiest of the three to pick up outside of the classroom, so I'm removing that from the list.

That leaves SQL or cloud.

And between those, cloud is by far the more:
  • Convoluted and difficult to learn
  • Riskier when mistakes are made (financially and from a security standpoint)
So I vote cloud computing.
 
So I vote cloud computing.

What even is cloud computing in practical terms?

It's processes at scale right? That's where it matters?

So it's typically data intensive businesses that spend a lot of money on hosting and want to be as efficient as possible, so your job is to use various cloud solutions and understand their framework?
 
What even is cloud computing in practical terms?
I'm going to make some assumptions about what they teach, but it should involve:
  • Systems architecture
  • Network security
  • Probably some DevOps
When I take a cloud computing job, I'd expect most or all of these responsibilities:
  • Determining what systems are needed, how they need to interact, etc.
  • Spinning up the servers for web app, DB, backend processes, API, etc.
  • Configuring all the servers with the necessary packages/etc.
  • Setting up networking and authentication so the servers can talk to each other and users can talk to their authorized servers without opening up vulnerabilities.
  • Making sure backups are in place and everything (including server config) is reproducible from those backups.
  • Putting in place processes for system updates.
 
I work as a full stack developer for a bank, and mainly do API services (C#, .net) and build frontends with JavaScript/TypeScript for internal tools. The thing with fullstack is that it is easy to get overwhelmed because there is so much to learn, but overall it is quite rewarding since you can work with anything.

In terms of a degree, not sure if I would do it again, learnt a lot more through online courses and books from Manning.

I would check out codewithmosh.com if you want a good resource
 
I'm going to make some assumptions about what they teach, but it should involve:
  • Systems architecture
  • Network security
  • Probably some DevOps
When I take a cloud computing job, I'd expect most or all of these responsibilities:
I see.

That's never going to be me. I think that is something I know already, this seems like a job for someone with great organisation skills.

I work as a full stack developer for a bank, and mainly do API services (C#, .net) and build frontends with JavaScript/TypeScript for internal tools.

This could be something I could see myself doing. Create tools that don't have to be pretty and constantly in need of UX updates etc.

Is this kind of thing freelancer friendly? How do you compete with the third worlders?
 
With the limited votes we have people voting all over the place but not commenting. Someone voted Machine Learning, let yourself be known!
 
This could be something I could see myself doing. Create tools that don't have to be pretty and constantly in need of UX updates etc.

Is this kind of thing freelancer friendly? How do you compete with the third worlders?
For internal tools, maybe, depends if the company wants to share that information with non employees. But competing with cheap programmers, I wouldnt really worry about it, nothing you can do about it besides get better at your own craft and position yourself as an expert, not a cheap employee. Atleast thats what I'd do.
 
This is an interesting thread. I'm self-teaching full stack development right now with essentially the same aspirations as you. Granted, I have roughly 5 years of experience with Python programming as a hobby.

I'm going to say it depends on the course syllabus. Advanced Python sounds bad on the surface but getting past the intermediate stage is what I struggle with most because there are fewer resources for advanced topics. If you're already a decent Python developer and that course teaches professional best practices in a practical way (think the type of content you see on testdriven.io) then I would lean towards that. You can get a lot done as a "full-stack" backend specialist these days with some vanilla JS sprinkled in. Plus, if you know your backend language well everything else gets easier - picking up new languages more quickly, jumping into a new framework in that language, etc. The patterns differ slightly between tech. The principles remain consistent.

That leads me to my next point. Full stack is almost always Full Stack (backend leaning) or Full Stack (frontend leaning). In my opinion, it's best to lean towards the former. Fancy UI's and modern frontend crap is great and all (sarcasm) but it's not necessary most of the time. Most of my frontend work consists of tweaking Bootstrap themes and exposing API endpoints where I need them, then hitting those with vanilla JS. No frontend framework necessary. Keep as much logic out of the client as possible and use task runners on the backend for any long polling. "Full Stack" frontend guys call themselves full stack but their idea of FS is mongodb or firebase.

My second choice would be a database course. I can't tell you how messy your queries can get if you're using an ORM without knowing what it's doing under the surface. Even if you don't need to write raw sql, having db design and query expertise is almost essential for any non-trivial backend. What do you do every time you set up a backend with relational data needs? You design your models. A good model design leads to optimal lookups and queries throughout your codebase. You can't design an optimal schema without knowing relationships, normalization, etc.

The cloud is valuable but you can pick up devops skills as you go. It shouldn't be your primary focus. I started using Docker and it's really not that difficult once you get the hang of it. I can do basic deployments to a VPS or PaaS. That's enough to get you where you need to be in most cases unless you're part of a huge org that needs orchestration and all these fancy serverless solutions.

As for freelancing, I haven't yet found a way to apply my skills to client work. Breaking out of the run-of-the-mill WP sites and stuff is hard. I think the best place to look would be internal tools for mid-size (non-tech) companies. Think an Intranet portal for a metal manufacturing company. It'll require a bit more in-person networking but the contracts are likely more lucrative.

Instead, I'm focusing on getting a job as a developer to accelerate my learning process. The nice part about this is every project I work on can go into my portfolio. So not only do I have the potential to make some money with my side projects, they can also help get me a job which will help me build better side projects. You see where I'm going? It's like a recursive feedback loop that I'm just starting to tap into.
 
Studying programming never worked for me. Countless courses and stuff and nothing really came out of it. Until I started focusing on actual projects:

- Automating HARO responses
- Creating a tool to update my content (scrape HTML data from the page, then connect with GSC and GA APIs and get data for each URL (sessions, clicks, ctr, etc), then I would also get internal/external links, etc.

After that, I would create a benchmark of what was "good" for each variable, like title tag under x characters, meta description contains keyword, etc.

Then I built an GPT agent to analyze each URL and compare to the benchmark, saying if that URL is good or bad.

I also asked to create a twitter and FB post for each URL. You can go on and on.

I learned A LOT doing this. Authentication, APIs, visualization, cleaning the data, etc. Now I'm working to do this in a front end app, instead of google sheets.

Just my 2 cents.


And to monetize that. Think of real problems to solve using the coding skills and that's your offer. Your offer is not "i code".
 
Full stack for sure and I agree with @courage99. I took python courses, php courses, laravel courses, etc.. I built tools through out those courses and got them working great. Problem is, I got busy doing other things to automate marketing and forgot almost all the things I learned in those courses.

If you are going to learn something you better use it and use it often, otherwise you will lose the knowledge.

My advice is figure out what you are building, take your course and then build it. You will learn the basics in the courses and become advanced while you build your tool, etc..
 
Full stack for sure and I agree with @courage99. I took python courses, php courses, laravel courses, etc.. I built tools through out those courses and got them working great. Problem is, I got busy doing other things to automate marketing and forgot almost all the things I learned in those courses.

If you are going to learn something you better use it and use it often, otherwise you will lose the knowledge.

My advice is figure out what you are building, take your course and then build it. You will learn the basics in the courses and become advanced while you build your tool, etc..
I wouldn't worry about losing the knowledge too much. You pick it back up in a week with a quick refresher on something like learnxinyminutes. And now with LLMs, you can re-learn even quicker while jumping straight back into projects. Plus, with enough repetition, it's almost impossible to forget the fundamentals of a language you've built dozens of applications in. Concepts are also easier to commit to memory than language syntax.
 
I studied Advanced Python btw and it was essentially a Flask course but with a bunch of theoretical comp-sci in it.

Was a very good experience and I got a good grade, so decided that I might have talent for coding, which is why I'm starting an online bachelor in development next year.
 
I studied Advanced Python btw and it was essentially a Flask course but with a bunch of theoretical comp-sci in it.

Was a very good experience and I got a good grade, so decided that I might have talent for coding, which is why I'm starting an online bachelor in development next year.
Nice man. Glad it worked out. Going deep on a single language until you reach advanced proficiency is key imo. Then it's easy to pick up new ones. Knowing what goes on under the hood is important. Check out teachyourselfcs.com if you're interested in self-teaching more in that area.

I will say, I would recommend getting a comp sci degree instead if your goal is obtaining the credentials necessary to be taken seriously as a developer. The industry generally looks upon it more favorably than a degree in software development (which is also more rare).
 
I will say, I would recommend getting a comp sci degree instead

I might, this course here is shorter and is available online. I don't think I'm ready for a full time multi-year course.

Depends on how this goes. I know people get hired from this too, but yeah, it's not optimal.

I'm not sure I want to go the typical job direction at my age, probably will try my chance at "indie hacking", which would fit well with my experience from affiliate marketing.
 
I studied Advanced Python btw and it was essentially a Flask course but with a bunch of theoretical comp-sci in it.

Was a very good experience and I got a good grade, so decided that I might have talent for coding, which is why I'm starting an online bachelor in development next year.
Good luck bro. Coding feels great. It's literally like magic, you mentalize something and manifest it into existence with spells (the code). What do you want to build?
 
Good luck bro. Coding feels great. It's literally like magic, you mentalize something and manifest it into existence with spells (the code). What do you want to build?

Yeah, it gives a great sense of accomplishment.

I probably will build some tools for the affiliate/blogging/seo niche, just to get started at least.
 
Is this kind of thing freelancer friendly? How do you compete with the third worlders?
I make my living doing full stack WP dev (full time and freelancing on the side). Once you've become proficient in all the main areas, soft skills become the key to competing, much moreso than advanced technical knowledge. The web dev that the vast majority of people need is not that complicated, and you hit a point of diminishing returns fairly quickly when it comes to advancing your programming skills.

Knowing how to talk to and listen to people, actually understanding their business needs, presenting yourself well, responding promptly or better yet protectively sending updates - that is the stuff freelance clients understand and informs 90% of their decision to hire you over another developer. Those are the skills that will get you the four-and-five-figure freelancing jobs, referrals, and keep you ahead of the third worlders, chat gpt spammers, etc.
 
Back