I need help getting back into development

J'Pol @lemmy.sdf.org to Programming@programming.dev – 14 points –

A little background: Through my teens in the 90's I did a lot of the things you may expect. I was a script kiddie on mIRC, made a tank game in Unreal Engine, and did some Quake modding. From 2002-2004 I landed a job doing Java web dev, SQL, and overall database administration because my father's friend needed someone that could do that. I was ok at the job, but not great. Being young, my hobby that turned into a 9-5 made me want to stab my eyes out and I quit.

With that said, I can understand a lot of what's going on, but it doesn't "click" anymore. I spent 20 years as a career machinist, but I physically can't do that anymore. Here's the rub - my twin brother is a brittle diabetic and can't work (lots of other stuff going on as well), and our mother is getting old (father passed this year). The only reasonable way forward that I can see in order to be able to support my brother is trying to get back into development.

When I stopped, subversion was what we used. I'm trying to understand Git, but it's a giant conceptual leap. I guess, what I'd like to hear from you all is a way to jump back in as quickly as possible in such a way that it may be a career.

Thanks

22

One of the best tutorials on really "grokking" git concepts, and it's online and interactive: https://learngitbranching.js.org

For programming, start with buildings things for yourself. Be practical, start small, and iterate, regardless if you consider the previous iteration was a success or failure. I've heard good things about https://automatetheboringstuff.com/ (in Python) in this regard.

Just remember: imposter syndrome is real. Everything you learn exposes you to ten things you don't yet know. Successful devs are comfortable with this reality - the job is one of constant learning. Best of luck!

You said it. I spent the first six months at a FAANG convinced that everyone could look at me and instantly tell that I didn't belong there. Glad I was able to flip my thinking on that one.

For getting a grip in current web development, I would recommend fullstackopen.com - it's a free online course by the University of Helsinki and starts from basically zero, and gives you a lot of insights into web dev.

It may take some time, but it's really worth it and an overall great course.

Best of luck to you!

I’m trying to understand Git, but it’s a giant conceptual leap.

Git is not that different from svn (I mean, the biggest hurdle is going from a shared folder to any version control system)... I'd say the main difference is that branches live in a different namespace than files (ie. you don't have trunk/src/whatever but just src/whatever in the main branch). On top of that there's that commit and push are two different things (and the same with fetch and checkout) and that merges are way easier than in svn (where you had to merge stuff manually).

If you create a repo locally and clone it twice in two different directories, you can easily simulate what would happen when you and a coworker collaborate via a centralized repo (say, github) - do a few experiments and you'll see it's not as complicated as it seems (I'd recommend using the CLI instead of some GUI client: it's way easier to figure things out without the overhead of learning to differentiate between git concepts and how the GUI tries to help).

I guess, what I’d like to hear from you all is a way to jump back in as quickly as possible in such a way that it may be a career.

You might check job listings in your region/country to figure out what languages and technology stacks are in high demand, as where you are seems to matter a lot.

Start with a git GUI application. I use git extensions on windows.

You'll be able to get a feel for how it all works and it actually shows you the commands it's running.

I also use bingai a lot when learning. The more specific your question the more likely you are to run into hallucinations and that. But for explaining basic concepts or query things that are well documented it's really good.

It also sources it's answers so you can follow the link for further reading if needed.

Just don't trust it to generate large amounts of code.

I'm trying to understand Git, but it's a giant conceptual leap.

To start with, start with just using git locally. Don't worry about GitHub or similar. Then git and SVN will work very similarly. The main difference is that you need to git add files with changes inside before you commit them.

Once you're comfortable with using it by yourself, then I suggest running something like forgejo locally to be your own code server. Then you can play and learn how the two parts work together.

Generally, you need to give yourself a little time. You need to do the work. Be efficient...sure, but don't try to force it to be quicker than the time you need to learn.

Best advice I have:

https://www.youtube.com/watch?v=0FPO4fm4nxc

Keep at it. Do actual projects. Actually use the tools for a while. It will eventually make sense.

I want you to understand how surreal this particular link is for me. Video edits are my hobby, and I've just recently started yet another play-through of Morrowind. I get the whole "do actual projects" thing and that's valid, but I've no clue where to start here. Should I finally learn C#? Is Rust the only way forward? Should I just try to catch back up on Java? I guess what I'm asking here is should I just try to find a FLOSS/OSS project and try to contribute or think of something new?

All the cool kids right now are mostly on JavaScript/type script. It’s probably a good place to get started since you’ll need it on the front end.

I’m guessing most work on the U.S. side is react. You can probably pick up a bit of node/react native as you go for the backend and for native dev.

Java is the new COBOL. Big corps luuuuuuuuurve it. It’s not what I would expect a single dev to use. C# is similar but smaller, if you forget unity game dev. And you should forget unity game dev.

Rust is basically a less bad C. If you do things you used to do in C, learn rust. If not, don’t.

Python is also still a thing. If you like it you can probably use it for most things, but if not there are other options.

My heart belongs to Vue.js

I like Vue better than react tbh.

My latest project is alpine.js. It’s not bad, it stays out of the way.

That said, I don’t do front end often enough to keep up.

Someone will probably shoot me down for this but I actually find ChatGPT good for explaining concepts to me. Especially when I just want a high level understanding of a concept as I try to understand another one without getting too bogged down. A lot of Google results go into way too much detail.

A few months back I would have said the same. Lately, however, ChatGPT very often returned very incorrect information on very basic topics. Each wrong answer erodes my trust a little bit more. Lately to a point where I consider googling first instead of asking ChatGPT

It’s also great for solving issues when you’re stuck. Not because of its superior reasoning skills but it can solve beginner issues and write you a list of things to try when it doesn’t know the answer right away. It’s like a rubber duck that will talk back.

My personal recommendation:

  • Pick up Python, it's easy to learn and highly productive. If you also learn fastAPI, you can benefit from highly validated, declarative models to build REST APIs in the backend, well fast. It will yield quick results, you won't become demotivated and you can pick up a paid project soon.

  • Pick up Rust. It's "in" right now and I get requests from marketing people that know nothing about programming, asking if their project could be implemented in Rust

  • Go with memorizing the shell commands first, try to understand git later. Get productive, try to get where you were with e. g. svn or cvs. If you are comfortable, look at something in depth if you have a problem that you can't solve with the knowledge you have.

  • Fuck Java, seriously.

  • You have commercial interests, so it is probably wise to look into becoming a fullstack dev to maximize the kind of projects you can do. Look into React, vue.js, svelte. React is probably still the most widely used framework, you'll quickly do a project with vue.js and svelte is a super interesting look into things to come.

Fuck Java, seriously

Toxic...

You can find a lot of good work doing Java.

Java have had very bad press lately (since the log4j fiasco I guess? maybe since before).

IDK why people blame Java for any issues with any library/project written in it... it's as dumb as blaming C/C++ for all the windows fuckups, and nobody blames php for the various cpanel vulnerabilities or python for all the shit people write in it.

I was going to say this. I hate Java as much as the next dev, but everything runs on Java. If it’s web -> Spring, DevOps -> Jenkins, Event Streams -> Kafka, Big Data -> Spark, Logging & SRE -> Flink. All of these are built on JVM based languages. I am fortunate enough to program Rust daily at my job, but my options for getting another Rust job are severely limited. Everybody always wants Java or Go. They always ask for C++ , but I’m convinced that day 1 they would have you switch to Java.

Side note: please don't abuse the word "toxic" until it becomes absolutely meaningless. Let's keep that to a more fitting context, having a

I was expressing an obviously personal opinion about the language itself, which is objectively a dull, barren wasteland that sucks out your soul while you walk it. That is precisely the reason why it's so widespread and loved by business entities and managers - there is no excitement, no surprises, just an everlasting monotony of keys clicking produced by a horde of clones wearing button-down shirts while sitting in absolute identical cubicles, creating yet another instance of FactoryProducer. It's very easy to plan and schedule for, while at the same time being unnecessarily verbose and mildly unproductive (compared to other languages).

Look, the JVM is fine, just pick another language. There is plenty of work doing Kotlin. But yes, if you're doing this only for the money, go ahead. I've always been unable to separate my job fromy personal life and my other interests, I couldn't imagine being cursed by Java again.

If you can sit somewhere for 8 to 10 hours each day, doing something that isn't fun and separate yourself from it, not going insane, all the power to you. I also get that not everyone has the luxury of picking their favorite toy and making it their job, but I firmly believe there are options that are not Java.

Now, if you're one of the rare types that actually enjoys Java, meet me in the closest Denny's parking lot, I need your cranial measurements.

Please note: this post contains hyperbole and humor. I don't hate any of you, I just hate Java