Programming thread

I recently lost my job (didn't renew probation, but there were other problems) and I want to get into coding because a lot of jobs want it, and my few skills are fairly niche.

Null said to get into JavaScript to be employable, I have "C for Dummies", and my brother is talking about learning Swift. Plus, I like computer games and I hope I can do something with video games. Do I start C for Dummies, or just looking up something online?
Don't do anything with the word 'video games' in it as a career. You'll take a 30% pay cut for way harder work.

Don't think too hard about language. You need to learn how to code first. JS (webshit), C# (video games, apps), C++ (literally everything) and Python (data) are enough for most jobs. Learning a new object oriented language is trivial if you already have solid fundamentals.
 
Last edited:
Null said to get into JavaScript to be employable, I have "C for Dummies", and my brother is talking about learning Swift. Plus, I like computer games and I hope I can do something with video games. Do I start C for Dummies, or just looking up something online?
Out of the gate the language you learn is unimportant. You want to understand the basic fundamentals because they're applicable across the board and make learning any new language a trivial affair. Basically just pick the one which interests you the most, search for some tutorials and material either online or through books, and run with it. For example all my work right now is some unholy concoction of JS, PHP, and Go, but I originally learned coding through C++ and making simple games with the SFML library. For juniors most of the time you're going to be hired based upon your general skills rather than knowledge of a specific language.

Going to second @Deluxe too, don't go for video games unless you live and breathe vidya because the industry feeds on the young and impressionable. There's lots of less glamorous tech jobs out there which both pay more and have much better work-life balance.
 
Well, I don't want to get a job in vidya, I was more thinking that it would be helpful for myself to know programming to understand video games and making them better. Reverse engineering, modding, maybe making my own.
 
To all the people who are interested in learning software development: whatever language you choose, please make sure it has a good debugger to go with it. Despite the hate I have for M$, Visual Studio's (not Visual Studio Code, that's pajeetware) debugger is very good, so I would recommend C++ or C# using Visual Studio (more so the latter so you could jump into Java jobs as well). Learning to use a debugger and read a stack trace is the core of the work you'll do, in my experience, and showing you know how to do that signals to me that you're capable of thinking about software on a meta level. The amount of "coworkers" I've had to deal with who become lusers when an error message pops up has made me glad I am not their manager because I'd fire them on the spot.


Well, I don't want to get a job in vidya, I was more thinking that it would be helpful for myself to know programming to understand video games and making them better. Reverse engineering, modding, maybe making my own.
Somebody who has more experience with this than me can explain this better, but for a job whose focus is solely reverse engineering in the US, you will most likely need a security clearance of some kind. Jobs without the clearance do exist, but it would be very difficult to get without some major vulnerability research work, and these days most companies don't want to hire the crackers who spent a few years in jail for breaking into systems. This is assuming you've got over the hurdle of learning RE.

Languages running on VMs like Java and C# are easier to reverse engineer, because they can be translated back into the original source for the most part. However, languages that compile to your hardware's machine code are more difficult. But in either case, reverse engineering a program is analogous to having a series of books handed to you after they have been ran through a paper shredder, and what you need to do is put it together well enough that you can get the information out of it that you are looking for, which is generally finding typos (bugs) that you can use to change the meaning of the book (exploit the program to do what you want it to do). Also, sometimes the book has wild copyright that can do things like add or remove words depending on how it is put together or read, or it'll explode, or any other weird thing that makes this analogy fall apart.

But, it can still be a rewarding hobby.
 
honestly if you want to write python or js professionally you probably don't even need to know about low level memory like heap/stack and structs (which have a specific memory layout in C). maybe you don't even need pointers if you understand the abstraction of pass by reference (in modern C++ you almost never use raw pointers or manually allocate C style). there even exist web compilers which is kinda absurd
cant speak for python, and while i dont work with it all that much, the professional js front end devs i work with tend to not understand any of that. stuff like low level memory and pointers never seem to come up in their job. it might sometimes for some people, but these devs never seem to mess with it. then again i do primarily work with pajeets, so that could also explain it.

i say it is a good thing to know, and you should learn it, but it also doesn't seem 100% necessary if you just want to do js webstuff.


Null said to get into JavaScript to be employable, I have "C for Dummies", and my brother is talking about learning Swift. Plus, I like computer games and I hope I can do something with video games. Do I start C for Dummies, or just looking up something online?
i first learned java, but i didnt really get into programming and didnt really click with it until i got into C. i read C programming Language 2nd edition and thought it was great.really got my interest in programming. not certain it is always the best choice for first timers. but also dont think it would hurt. but as others said, basically any language is fine. my vote would be any modern language with object oriented features. once you learn one of those, almost any other language is fairly easy to learn. it's more about learning concepts rather than languages and those languages tend ot make it easy to do so.
 
I see Al Sweigart, author of "Python - automate the boring stuff" does live streams on youtube. The book is pretty good for newbies/language switchers. I think it is even available for free now.
 
Out of the gate the language you learn is unimportant. You want to understand the basic fundamentals because they're applicable across the board and make learning any new language a trivial affair. Basically just pick the one which interests you the most, search for some tutorials and material either online or through books, and run with it. For example all my work right now is some unholy concoction of JS, PHP, and Go, but I originally learned coding through C++ and making simple games with the SFML library. For juniors most of the time you're going to be hired based upon your general skills rather than knowledge of a specific language.

Going to second @Deluxe too, don't go for video games unless you live and breathe vidya because the industry feeds on the young and impressionable. There's lots of less glamorous tech jobs out there which both pay more and have much better work-life balance.
I have to agree; the language itself is almost completely irrelevant. In nearly all cases, you're going to be working in some imperative language, one with traditional control flow and following the standard programming paradigms we've all used for years. The only real difference between these languages is a syntax, which you should be able to pick up pretty quickly. The one thing you just need to learn about is the concepts. Not even the theoretical concepts, although understanding the basics of data structures and algorithm design is always helpful, just understanding the fundamental and conceptual basics to programming makes it so you can pick up virtually any traditional programming language without feeling like you have absolutely no idea what you're doing. You could even come from JavaScript and get a decent handle on how to effectively program in C++, ignoring all of it's thousands of extra language features that nobody remembers. Sure, working with static typing and managing memory might be completely different, but if you have your brain wired to think about programming in a logical way, it's not hard to start to grasp what you're doing.

Although one thing I must admit is that I still have no idea what the fuck I'm doing when I'm working in a purely functional environment. My math has always been quite shit so even applying the lambda calculus to programming is hard for me to understand properly, despite it being such a small and comprehendible subset of mathematical logic.
 
I still have no idea what the fuck I'm doing when I'm working in a purely functional environment.
the secret here is that nobody really knows what they are doing when it comes to purely functional. anyone who looks like they do is just smoke and mirrors.
 
  • Thunk-Provoking
Reactions: Synthetic Smug
Although one thing I must admit is that I still have no idea what the fuck I'm doing when I'm working in a purely functional environment. My math has always been quite shit so even applying the lambda calculus to programming is hard for me to understand properly, despite it being such a small and comprehendible subset of mathematical logic.

In my view, having taken a beginner FP class (lol) and coming from a somewhat math background, is that the core idea of functional programming is functions as first-class citizens and using function composition instead of an imperative style.

Maybe relevant:
The standard "foundation" for mathematics starts with sets and their elements. It is possible to start differently, by axiomatising not elements of sets but functions between sets. This can be done by using the language of categories and universal constructions.
-- Saunders Mac Lane

What people need to understand about functions are they are not limited to mapping just one number to another number, like y=f(x) from grade school which operates usually from R -> R, but can map between arbitrary spaces like X -> Y. So you could have a function that maps a real-valued function to a new real-valued function, and so this higher-order function operates between F -> F, where F is the vector space of functions R-> R. This requires a leap of abstract thinking to understand. Instead of performing steps literally one after another imperatively, this is achieved by creating new functions by composing smaller building blocks, which do things "all at once".
 
I recently lost my job (didn't renew probation, but there were other problems) and I want to get into coding because a lot of jobs want it, and my few skills are fairly niche.

Null said to get into JavaScript to be employable, I have "C for Dummies", and my brother is talking about learning Swift. Plus, I like computer games and I hope I can do something with video games. Do I start C for Dummies, or just looking up something online?
My best advice is: Look for job offers asking for programmers around your area and look at those you find interesting. Then learn the language or languages those are asking for.

It's just unnecessary delay if you learn C and the skills for low level memory trickery if the jobs around are webdev. You'd find employment easier if you then learned the skills they're looking for.
 
I recently lost my job (didn't renew probation, but there were other problems) and I want to get into coding because a lot of jobs want it, and my few skills are fairly niche.

Null said to get into JavaScript to be employable, I have "C for Dummies", and my brother is talking about learning Swift. Plus, I like computer games and I hope I can do something with video games. Do I start C for Dummies, or just looking up something online?

Oh boy, our regularly scheduled "first programming language" post.

You shouldn't read "C for Dummies" because
1) C is an old and finicky language that doesn't make things easy for you
2) "C for Dummies" is (probably) terribly written and outdated

If you like video games I assume you want to do something visual and interactive. Javascript is used to program web pages so you might find this more interesting than command line programs (which is all you will learn in a C book).

Programming is not about learning a programming language: the best way I can describe it is breaking down your goal into individual components that work together, and breaking down those components into well-defined step-by-step processes.
 
If you like video games I assume you want to do something visual and interactive. Javascript is used to program web pages so you might find this more interesting than command line programs (which is all you will learn in a C book).
Damn kids these days. We used to play MUDs and we enjoyed it. Now get off my lawn.
 
I recently lost my job (didn't renew probation, but there were other problems) and I want to get into coding because a lot of jobs want it, and my few skills are fairly niche.

Null said to get into JavaScript to be employable, I have "C for Dummies", and my brother is talking about learning Swift. Plus, I like computer games and I hope I can do something with video games. Do I start C for Dummies, or just looking up something online?

Almost all of your major operation systems are writen in C and ASM. Learn C and C++.

I hope the 'null said to get into javascript' is a joke. I'm a little high right now ;)
 
Almost all of your major operation systems are writen in C and ASM. Learn C and C++.

I hope the 'null said to get into javascript' is a joke. I'm a little high right now ;)
Null codes sneedforo in rust, I think that says all it needs to say.
 
  • Horrifying
Reactions: Mr. 0
Although one thing I must admit is that I still have no idea what the fuck I'm doing when I'm working in a purely functional environment. My math has always been quite shit so even applying the lambda calculus to programming is hard for me to understand properly, despite it being such a small and comprehendible subset of mathematical logic.
When first moving from an imperative to a functional language I think it helps to alter how you think about applications. Instead of objects, how you want them to interface, etc. I find it helpful to think in terms of data going through a pipeline of functions. Since data is immutable in FP, instead of altering the local state of an object with methods you will just be passing the data into some amount of functions pipelined or composed together until you have the result you want. It sounds pretty obvious but it took a little while before I got used to thinking in terms of data instead of objects when I began exploring FP. Once that clicked, I had a much easier time reasoning about my projects.
 
Almost all of your major operation systems are writen in C and ASM. Learn C and C++.

I hope the 'null said to get into javascript' is a joke. I'm a little high right now ;)
"*dog whimper sound*" 1:41:00-1:44:00 (YouTube version, timestamps on others may not be accurate).
 
You still need C++ for object oriented programming.
There's plenty of OOP frameworks for C. GObject comes to mind. And with enough ingenuity, you can write OOP code in any language but even vanilla C is pretty easy to hack some basic OOP abstractions on top of.

I recently lost my job (didn't renew probation, but there were other problems) and I want to get into coding because a lot of jobs want it, and my few skills are fairly niche.

Null said to get into JavaScript to be employable, I have "C for Dummies", and my brother is talking about learning Swift. Plus, I like computer games and I hope I can do something with video games. Do I start C for Dummies, or just looking up something online?
C jobs aren't terribly numerous and the ones that are out there are going to expect a bachelor's degree and/or a ton of proven experience either in industry or in open-source in a specific domain area. I don't want to say it's impossible for a neophyte to get a C job, but it basically is.

Freecodecamp has a ~20 hour course on frontend web development fundamentals. I'd recommend watching it and learning the basics of frontend, then learning a few of the specific frontend frameworks like React, Angular, and Vue. After that, build some sites with these technologies and put them on your resume as portfolio pieces. Once you have some work to show, spam your application to every shop hiring frontend devs and wait for someone to bite. This will probably take a decent amount of time (I spent six months unemployed before finding my most recent job and I have 4-5 YoE as a developer with peer-reviewed research bonafides from one of my jobs), so at least take some kind of part-time wagie job to shore up your finances and increase your runway.

Almost all of your major operation systems are writen in C and ASM. Learn C and C++.
No one writes operating systems. We're trying to eat, not get run over by trains driven by the CIA.
 
Oh boy, our regularly scheduled "first programming language" post.

You shouldn't read "C for Dummies" because
1) C is an old and finicky language that doesn't make things easy for you
2) "C for Dummies" is (probably) terribly written and outdated

If you like video games I assume you want to do something visual and interactive. Javascript is used to program web pages so you might find this more interesting than command line programs (which is all you will learn in a C book).

Programming is not about learning a programming language: the best way I can describe it is breaking down your goal into individual components that work together, and breaking down those components into well-defined step-by-step processes.
"C For Dummies" copyright 2004.

It's a huge book with almost 800 pages...but about 60% in you're learning to write a simple program to translate English into Pig Latin. As normalfags would say, big oof.
 
Back