Programming thread

learn bash scripting to start
I'm not sure if bash scripting is the best place to start; it's very unlike a lot of other programming languages and there aren't quite as many resources for it. Python is usually a good starting place for most people. The last two lines are really good advice, though.
Yeah, nah, bash sucks. Forget that.

Python's a good start.
1530924176765-png.490124
In all seriousness, it's kind of a shame that, even with the huge number of text editors available nowadays, most discussions on them seem to come back to those two.
If emacs ever gets scheme working (both technically, and culturally, the latter being somewhat trickier) then there's no reason for any new editor ever. Even if later editors supplanted it, emacs compatibility APIs will still be an essential feature of any future editor.

Elisp is the horrible turd anchor that's both enabled emacs to aggressively compete in the editor market and... held it back from just blowing away the competition permanently.

It's the worst conception of a lisp ever.
I'd be tempted to recommend a statically typed language - less chance of absurd errors that make no sense to a beginner.
I disagree.

While I love strongly typed, statically typed languages, like ocaml and haskell, you don't want to prematurely hamper a new programmer's way of thinking. You want them to be creative initially, and then later realize why static typing might sometimes (not always, but sometimes) be a useful tool.

Encountering absurd errors, and then forcing yourself to double down and root them out, is an invaluble lesson to a new programmer. It teaches humility.
 
So, this is an embarrassingly pedestrian request, but I'm about to have a lot of free time that I would like to turn into a life skill. What are some good resources for learning to code without buying a college degree?

You don't need really need linux to get started, Windows will work fine though you shouldn't have any problem if you are using a mac either. There are many ways to get into programming on your lonesome, what will work best for you will depend on you. I would recommend picking a language, and learning the technical aspects from multiple resources like LearnC++.com or LearnPython.org while simultaneously working with an actual programming application, such as Unity for C#. The former is necessary to understand the language, while the later may help the learning process along by giving you a fun way to apply your knowledge.

The way I got into programming was through SecondLife --which has it's own programming language-- and the Blender game engine --which uses Python--. These provided a comfortable environment for me --who was at the time 15-- to get roughly acquainted with some of the surface level aspects of programming, they however, did not give me a solid understanding of any of the concepts I had to contend with. It was when I picked up a C++ For Dummys book that I actually began to understand what I was doing.

I would recommend that you learn a low level programming language such as C or C++ at some point as they will give you a reasonable idea of how a computer actually works, and further more, will let you understand problems that come up in other programming languages; however, if you start there you may find yourself frustrated by their complexity, and general unfriendliness. What you may wish to start with is a higher level language such as C#, java, or python. They hide some of the complexities of programming, and are generally much friendlier to work with.

Another thing which may help is working with an actual programming application, rather than doing purely technical work. The aforementioned Unity game engine is one option, but there are many more, such as the Unreal game engine which uses C++. This will cement your skills, and keep you engaged.

Language-wise, I would recommend C#, which I find to be a palatable union between high level and low level programming. A simple tutorial can be found at LearnC#.org, though it is only enough to dip your toes in the water. In order to progress you will need a tool such as Visual Studio or Visual Studio Code --though it is possible to use a C# compiler on it's own, I wouldn't recommend it to a beginner-- and from there you could go through a tutorial such as TutorialsPoint/C#. The main advantages of C# are that it has many real world programming applications, it comfortably bridges the gap between high level and low level, and it has a well developed code base with support from many major companies.
 
Even real programmers don't write Bash, we just piece it together from shit on stack overflow.
If you must learn that kind of language as your first language, stick with Windows and teach yourself Powershell, which isn't a piece of shit that's entirely dependent on passing text around to communicate between tools.
 
Thanks for the reams of advice, even if some of it is a bit over my head yet. For what it's worth, I maintained a linux install forever ago, but every time I used it was a series of asking Google questions and following painstaking tutorials that often were written for a different distro which wasn't mentioned anywhere therein. Of course, when I tried to install Cygwin that was an even bigger disaster, so...

At this stage, I'll probably study the tutorials @ConcernedAnon linked. If/when I'm forced to submit to linux again, what distro should I use? Emphasis on compatibility, please.

Oh, and here's @Splendid Meat Sticks bringing up what I was literally just about to ask. I've heard Powershell is actually pretty neat, would it meet my needs for making a few basic 'Hello World's without going through the noise of a linux install and maintenance?
 
Thanks for the reams of advice, even if some of it is a bit over my head yet. For what it's worth, I maintained a linux install forever ago, but every time I used it was a series of asking Google questions and following painstaking tutorials that often were written for a different distro which wasn't mentioned anywhere therein. Of course, when I tried to install Cygwin that was an even bigger disaster, so...

At this stage, I'll probably study the tutorials @ConcernedAnon linked. If/when I'm forced to submit to linux again, what distro should I use? Emphasis on compatibility, please.

Oh, and here's @Splendid Meat Sticks bringing up what I was literally just about to ask. I've heard Powershell is actually pretty neat, would it meet my needs for making a few basic 'Hello World's without going through the noise of a linux install and maintenance?

Powershell can do everything the windows shell can do and more. It should be fine for your purposes. You might also want an IDE --Interactive Development Environment; IDEs will handle most of the fiddly parts of compilation for you, letting you focus on learning the language. I started using C++ with an IDE, and after I was comfortable with it, I learned how to use the mingw compiler on it's own. I expect if I had started my learning using only the command line tools I would have been overwhelmed.

I expect you might find it helpful to learn the language first, and then learn the tool set. As such I would recommend Visual Studio which has tools for many different languages such as C#, C++, and python, or even language specific IDEs such as IDLE for python.
 
Seriously, just learn Python, then C#. There is no need to install Linux to become a developer. My employer is a 100% Windows shop for instance and we all develop on Windows. If you need to install Linux in order to use a specific programming language, that programming language isn't worth using.
The same is true for any language that you need to install Windows to use too. At your stage, you're looking for well documented, widely used, relatively bug free languages with a big community that can answer your questions.
 
Seriously, just learn Python, then C#. There is no need to install Linux to become a developer. My employer is a 100% Windows shop for instance and we all develop on Windows. If you need to install Linux in order to use a specific programming language, that programming language isn't worth using.
The same is true for any language that you need to install Windows to use too. At your stage, you're looking for well documented, widely used, relatively bug free languages with a big community that can answer your questions.
Agree about python, but I think it's pretty naive to think that linux only is that serious of a flaw.

It's a flaw, but only in the handwavy sense of "why couldn't you port it?".

Strangely enough, Linux is actually the king when it comes to fancy, new programmer tech. Not posix, but actual linux. Even OS X gets left in the dark sometimes.

Like how there's no native version of docker for OS X or windows, last time I checked. And docker is huge.

When it comes to languages, most of the time, they'll have a windows port "technically speaking" but not really. Or it's a pain in the ass to get, and maybe only compiles in cygwin, for example.
 
haha really got you fags talking eh

i chose bsah because it's easy to get immediate feedback and really learn how to connect multiple programs and use the command line to open tools

it's more realistic for someone to learn these skills as a complete beginner than "learn python bro" which is more for professionals.

like for me, what got me going was installing linux OS. i couldn't not become a computer hacker with that OS, you have to tweak everything. you can learn how the system actually works. you get immediate feedback, you can configure EVERYTHING.

i'm surprised how many windows plebs are in here. linux is godly compared to that shit. here's my incredibly efficient linux desktop.

vlPTT44.png
 
Last edited:
haha really got you fags talking eh

i chose bsah because it's easy to get immediate feedback and really learn how to connect multiple programs and use the command line to open tools

it's more realistic for someone to learn these skills as a complete beginner than "learn python bro" which is more for professionals.

like for me, what got me going was installing linux OS. i couldn't not become a computer hacker with that OS, you have to tweak everything. you can learn how the system actually works. you get immediate feedback, you can configure EVERYTHING.

i'm surprised how many windows plebs are in here. linux is godly compared to that shit. here's my incredibly efficient linux desktop.

vlPTT44.png
Is this a copypasta?

Edit: also best shell language is scsh
 
i make entire websites and functions with bash scripts, it's fucking pimp.

don't let these tryhards convince you otherwise.
 
Agree about python, but I think it's pretty naive to think that linux only is that serious of a flaw.

It's a flaw, but only in the handwavy sense of "why couldn't you port it?".

Strangely enough, Linux is actually the king when it comes to fancy, new programmer tech. Not posix, but actual linux. Even OS X gets left in the dark sometimes.

Like how there's no native version of docker for OS X or windows, last time I checked. And docker is huge.

When it comes to languages, most of the time, they'll have a windows port "technically speaking" but not really. Or it's a pain in the ass to get, and maybe only compiles in cygwin, for example.
What a new programmer needs is a ton of documentation, external libraries, and stack overflow examples. That's the kind of shit that very heavily correlates with being available on Windows.
Plus, you don't need to be learning a new OS while you're also learning how to program.

haha really got you fags talking eh

i chose bsah because it's easy to get immediate feedback and really learn how to connect multiple programs and use the command line to open tools

it's more realistic for someone to learn these skills as a complete beginner than "learn python bro" which is more for professionals.

like for me, what got me going was installing linux OS. i couldn't not become a computer hacker with that OS, you have to tweak everything. you can learn how the system actually works. you get immediate feedback, you can configure EVERYTHING.

i'm surprised how many windows plebs are in here. linux is godly compared to that shit. here's my incredibly efficient linux desktop.

vlPTT44.png
Linux ranges from worse than Windows 9X to god tier depending on your setup. But for a casual user, it's pretty bad.

Also, you all are wrong. DCL is objectively the best shell scripting language.
That, or TempleOS's HolyC.

Also, I've made production software in AppleScript. Doesn't mean it's a good language.
 
What a new programmer needs is a ton of documentation, external libraries, and stack overflow examples. That's the kind of shit that very heavily correlates with being available on Windows.
Oh yeah you windows fags don't have man pages. To open the manual in linux you go to the command line and type 'man youtube-dl' which gives you the documentation you need to configure the command lines.

Plus, you don't need to be learning a new OS while you're also learning how to program.
Not that I think learning a linux OS is hard these days, nor do I think you really have to learn anything about it to actually use it. Linux desktop is very streamlined these days. Don't need to re-learn anything honestly.

But having a dedicated machine for programming is going to be much more helpful to the learner. Especially when it's in an OS that is developer centric. Like linux is. It's actually a big pain in the ass to have to download all the new modules and install them in windows. In linux it's as simple as typing a few names of the things you want to download in a terminal.
 
What a new programmer needs is a ton of documentation, external libraries, and stack overflow examples. That's the kind of shit that very heavily correlates with being available on Windows.
Overall I agree with you, but I'd be slightly about tools like pip working 100% correctly on windows. It's always fiddly stuff like dynamic linking that cross platform tools tend to fuck up, often for stupid reasons like different file extensions or windows' goofy c: drive prefixes.

But yeah, it's most likely less of a hassle than learning linux.
Also, you all are wrong. DCL is objectively the best shell scripting language.
That, or TempleOS's HolyC.
Scripting language is meaningless marketing speak. It genuinely has no technical definition.

Shell languages fulfill a weird niche that only exists because of the process+file handle os design of windows and Unix.

They're ugly because the underlying model is not very elegant.
 
Oh yeah you windows fags don't have man pages. To open the manual in linux you go to the command line and type 'man youtube-dl' which gives you the documentation you need to configure the command lines.
Man pages seem to be something of a dying art nowadays. I've started to encounter man pages that basically say "lol google it you nigger".
Not that I think
That's not how that phrasing works...
But having a dedicated machine for programming is going to be much more helpful to the learner. Especially when it's in an OS that is developer centric. Like linux is. It's actually a big pain in the ass to have to download all the new modules and install them in windows. In linux it's as simple as typing a few names of the things you want to download in a terminal.
Agreed. Really, I think the bigger problem is faggots advising noobs to instill gentoo or arch for their first install.
 
I'd be tempted to recommend a statically typed language - less chance of absurd errors that make no sense to a beginner.
That and they tend to teach better programming habits. I just tend not to recommend them right off the bat because newcomers tend to get intimidated by languages like C.
If emacs ever gets scheme working (both technically, and culturally, the latter being somewhat trickier) then there's no reason for any new editor ever. Even if later editors supplanted it, emacs compatibility APIs will still be an essential feature of any future editor.
I'm not aware of any text editor that has syntax highlighting for any scheme implementations, but if emacs could be the first that would change a lot.
I disagree.

While I love strongly typed, statically typed languages, like ocaml and haskell, you don't want to prematurely hamper a new programmer's way of thinking. You want them to be creative initially, and then later realize why static typing might sometimes (not always, but sometimes) be a useful tool.

Encountering absurd errors, and then forcing yourself to double down and root them out, is an invaluble lesson to a new programmer. It teaches humility.
I disagree only very slightly with the middle section, since I know that while dynamically typed languages encourage creativity I also know that there was a lot of stuff I had to unlearn when I learned C after python. I'm not sure which is harder: learning lessons from dynamically typed languages after learning a statically typed language or vice versa.
Strangely enough, Linux is actually the king when it comes to fancy, new programmer tech. Not posix, but actual linux. Even OS X gets left in the dark sometimes.
This is entirely dependent on what distro you're running, though. Some, like mine, either force you to wait quite a while before creating a package in the official repos or just never give you one at all while telling you to figure out the distro-specific build-from-source functionality using all of the zero guides available.
Man pages seem to be something of a dying art nowadays. I've started to encounter man pages that basically say "lol google it you nigger".
I remember getting this exact result from exiftools and wondered why they even bothered writing one if they were just going to insult me like this.
 
I'm not aware of any text editor that has syntax highlighting for any scheme implementations, but if emacs could be the first that would change a lot.
Heh, you fucking with me?
I disagree only very slightly with the middle section, since I know that while dynamically typed languages encourage creativity I also know that there was a lot of stuff I had to unlearn when I learned C after python. I'm not sure which is harder: learning lessons from dynamically typed languages after learning a statically typed language or vice versa.
You didn't have to unlearn it because it was bad Python (or maybe it was bad Python? Not always, anyway), but because it's bad C.

But that's inevitable when learning new languages. Not everything you know from your last language is going to translate to the new language.

And that's a good thing. You should be growing and maturing as a programmer.
This is entirely dependent on what distro you're running, though. Some, like mine, either force you to wait quite a while before creating a package in the official repos or just never give you one at all while telling you to figure out the distro-specific build-from-source functionality using all of the zero guides available.
I use Arch. But even without using the bleeding edge, there's stuff that's going to be on Linux first.

What distro do you use?
This was so terrible it gave me cancer.
 
We can all at least take solace in the fact that she's no longer attempting to teach girls to code. I don't mean that in a "girls shouldn't code" way, I mean that in a "anyone would be better at teaching girls to code than this woman" way.
Heh, you fucking with me?
Besides the IDE that's designed to function specifically with Racket (I think it's called Dr. Racket but I can't remember), I've never seen a text editor that had syntax highlighting for scheme. I'm probably just not looking in the right place, though.
What distro do you use?
I use Void. It's been a weird couple of months for Void users after we realized the head developer is probably dead and the dev team has had to scramble to switch domains and repositories.
 
Besides the IDE that's designed to function specifically with Racket (I think it's called Dr. Racket but I can't remember), I've never seen a text editor that had syntax highlighting for scheme. I'm probably just not looking in the right place, though.
Most of them do. Look among the lisps. If not explicitly Scheme, a Common Lisp mode would work too.
I use Void. It's been a weird couple of months for Void users after we realized the head developer is probably dead and the dev team has had to scramble to switch domains and repositories.
Huh. Weird.

Having a "key man" setup is a common fuckup. I've been in situations where people have tried to run off with essential domains, or take them hostage for money.
 
Back