Further down the line, what should a beginner choose to do?

(I haven’t put this in career advice since I don’t want to code professionally or make a career out of it, but use it in the field I will get into in the future and for personal projects, as it is a powerful tool even outside the field and has many practical use cases)
I am not too experienced in programming, just a bit over 4 months in. I know most of the fundamentals, based on those, I want to expand onto what I know by learning more frameworks for JavaScript and Python, however, each framework has a different use case. I am not really fixed on any specific frameworks, currently, I am looking at web development(flask, Django), mobile app development(react native), desktop app development(electron), and machine learning. You can use either a website or an app for expressing the same idea, I don’t want to spend much time experimenting with frameworks(potentially a mistake, but I want to spend more time gaining real-world experience, and while experimenting, some things might not fit me, and will, in turn, waste my time, I am a student, and I want to be very specific with my time). Since choosing either web or app is an issue, the next thing I might want to look at would be the people who would benefit from what I create, but that is something which I am clueless about right now, at least until I have some more experience. I could use Wix or something along those lines for a website, so that is another influencing factor since I want to be conscious of how I spend my time, and I should save as much time as possible if I can help it. Another question would be, should I learn node.js? I know python beforehand, but I do fancy the thought of using the same language for a wider variety of tasks. If I had to narrow down this post to a few questions only, they would be:-

  1. Where can I make maximum impact if I were to focus on programming for 1.5 - 2 hours a day for the next year or so? This includes time spent in learning Frameworks, as well as time spent gathering practical experience through projects. I know this also varies based on the language, so JavaScript and Python are the current options.
  2. Which option will be the best for me long-term? I enjoy almost everything I have tried out in programming, so I don't have to worry about satisfaction.
  3. Will learning node.js do me good if I already know Python?
1 Like

Please do let me know if more detail is necessary.

When you are learning, the “people who benefit” is pretty much yourself.

So pick something you are passionate about, or something you would work on yourself, and do it.
Doing so you will get knowledge, experience and you’ll build something concrete which is always satisfactory. :slight_smile:

So my advice is to “go on and make things”.

I did mention in the post that I enjoy almost any form of programming as long as it does not have to deal with too much OOP.

I probably didn’t make myself clear: I am not talking about a language or a technology you are passionate about: but a project.

Techs come and goes.
So unless your goal is to learn something specific for being employable (which I get from your post is not), then build something.
The knowledge you will get from it will be the true value.

So, what’s that interest you? What do you see yourself spend hours building?
That’s the questions you need to find an answer for.

1 Like

Since you’re pursuing programming as a skillset to be applied to other jobs and not interested in becoming a career programmer here’s what I recommend.

Focus on Web

It sounds to me like you just want to be able to tackle as many problems as possible while having to spend the least amount of time learning new tech.

If that’s true I’d stick to web based technologies. From the description you gave it sounds like you’re already doing this but I just wanted to say you’re on the right track.

Desktop, mobile, web – everything can be built with JavaScript these days so stick with that.

When you can use JS use JS

You asked about where you can make maximum impact. I think sticking with one language whenever you can is your best bet. You mentioned interest in some ML projects which you can use JS for but Python is probably you’re better go-to in that case.

If you focus your efforts on learning JavaScript I think you’ll get the best pay off for the limited time you have to spend learning and building projects. The fewer languages you have to juggle the less you have to worry about retention.

JavaScript also is a good long term bet. It has been and will continue to stay very relevant for years to come.

And yes, learning NodeJS will do you good :slight_smile:

Use relational databases (i.e. Postgres)

Same reason you want to limit how many programming languages you learn, you also want to limit how many database technologies you learn too.

NoSQL (i.e. Mongo, Dynamo, Cassandra, Redis) is cool but relational databases are timeless and the differences between the two paradigms aren’t so obvious these days. Relational databases are the default for any framework that uses a “convention over configuration” philosophy (Django, Rails, Laravel) and they’re supported by everything you could imagine.

Want to use GraphQL? Sweet, give Hasura a try but it only works with Postgres (a relational database). Or use Prisma which doesn’t even care what database you’re using underneath (so might as well use Postrgres).

I highly recommend Postgres but MariaDB and MySQL are two very popular options as well.

Convention over configuration

When choosing web frameworks you’re probably better off to use frameworks that do a lot of the heavy lifting for you.

There’s about 2 dozen or more things you need in 90% of all web based applications. Libraries like ExpressJS ignore all of those things and leave you to figure it out. ExpressJS prioritizes configuration and customizability over being able to just get something built quickly.

AdonisJS is a good option to look into if you’re sticking with JavaScript. Meteor is another decent option too.

The only difficulty I have when suggesting languages to people is that I think Laravel is an amazing RAD (rapid application development) framework (AdonisJS is almost a 1:1 clone but in JS) but it’s a PHP framework which would just be one more language you’d have to learn.

I’m yet to find a Laravel equivalent in any other language.

Don’t worry too much about “best practice”

You’re not wanting to be a career developer so learning design patterns, and test-driven development, architecture, UML, domain modeling etc are all things you probably don’t want to waste your time with unless you start experiencing the pain of not being able to maintain your own projects.

I assume most of the projects you work on won’t be very large so following the conventions of whatever framework you’re using and hacking the rest in will take you far enough.

1 Like

Think of something that you want to exist - something that you would use. An app for picking what restaurant to go to? A website that tracks upcoming release dates from authors you love? A bot-driven Twitter account for your hamster? Whatever. From there, figure out what tools and technologies would be appropriate to build it.

A common problem with technology is “a solution in search of a problem”. This is something that both newbie programmers and well-funded startups struggle with.

If your goal is to learn to program and to build cool stuff, then focusing on building something where the user is you will help give you both motivation and direction.

3 Likes

I did have a plan, but I later decided that it was thrash and no one would like it, so I did away with it.

Ok. Happens to everyone. People who build really cool things build a lot more crappy things.

Thanks! I am not sure. I think I’ll learn AI anyway, as for between Web Development and App Development, it really varies upon what kind of stuff I’m creating, which is where I’m kind of stuck, but since app development brings the power of developing applications with mobility, I assume I’ll learn app development too, unless it takes me way too much time.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.