How the fuck are you supposed to learn how to write programs and do tech shit...

How the fuck are you supposed to learn how to write programs and do tech shit? Every time I try to look for help people either start acting like pompous douchebags as if I'm some kind of retard for not having pre-existing knowledge of computer software in my brain from birth, or expect me to install 7 gigabytes of Microsoft Shitware to develop in.

I want to learn how to actually understand this stuff, not install some bloated Microsoft™ Windows© Visual® Studio™© and Just Do It™ the way someone told me to do it with complete disregard of what I'm actually doing so long as my code runs. On the Linux side it's "do X, if you don't already know how to do it then fuck off."

To illustrate what I'm getting at; what if I want to use Vulkan or FFmpeg with my program? I'd have absolutely no fucking clue what I'm supposed to do for something like that because nobody bothered to explain to me what it is exactly that I'm doing or how any of it works, only told me to just do X to make le program.

Here's my adventure from today:

Why isn't there some kind of a guide to teach this shit? This honestly seems like one of those things that should be the simplest and most important thing in the fucking world to inform people about, yet it's just about the most convoluted thing I've ever tried to learn more about.

I think this is exactly why there's so many pajeet shitcoders, because it's so difficult to get into this stuff and understand it properly. Meanwhile you can install Bloatsoft Botnetmachine 2000currentyear on your Adware OS and instantly write 500mb java applications for the web.

Other urls found in this thread:

codecademy.com/learn/python
nuwen.net/mingw.html
www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html
youtube.com/results?search_query=how to compile c++ code
github.com/vhf/free-programming-books/blob/master/free-programming-books.md
web-artanis.com/scheme.html
mitpress.mit.edu/books/little-schemer
7chan.org/pr/src/The_Little_Schemer_4th_2.pdf
github.com/pkrumins/the-little-schemer
web.archive.org/web/20170523193231/http://norvig.com/21-days.html
vulkan-tutorial.com/
youtube.com/watch?v=B5YokNW7tIs
sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win32/Personal Builds/mingw-builds/installer/mingw-w64-install.exe/download
codeblocks.org/
oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
eclipse.org/downloads/
landinghub.visualstudio.com/visual-cpp-build-tools
msdn.microsoft.com/en-us/library/ms235639.aspx?hstc=268264337.27bb03247e44371c4685620abf1c9c4e.1495613035296.1495613035296.1495613035296.1&hssc=268264337.1.1495613035297&__hsfp=3107542752
pellesc.de/index.php?lang=en&page=download
web.mit.edu/16.070/www/year2001/C_Crash_Course.pdf
web.stanford.edu/class/cs193d/handouts/04-A-Crash-Course.pdf
learnxinyminutes.com
lmgtfy.com/?q=python documentation
youtube.com/user/makinggameswithben
functionalcs.github.io/curriculum/
boards.4chan.org/g/catalogcurl
twitter.com/AnonBabble

Start coding in Python, the rest is all cancer in my opinion. Perl can do some great stuff while ruby has it handy stuff but it's community is SJW central and comparable to having a pinecone shoved up your ass. I always fall back to Py where my hacker peeps linger. Only retards use winshit.

codecademy.com/learn/python

...

Okay OP listen up.
If you want to become a programmer (not a webdev pajeetmonkey but an actual programmer) you need AUTISM.
Sit your ass down and read as much as you can
Then write shit, anything. It WILL break you WILL be angry but you don't give up. Use your autism to find out what broke and do it again until you learn.

As a bonus and because microsofts compiler is fucking ass dog shit i will give you this compiler for windows (even though working on linux is much easier for C/C++)
nuwen.net/mingw.html
This is literally a extract and work compiler for windows that is not shit.

KYS, faggot.
Took me literally 5 seconds to find this introductory tutorial about using GCC.
www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html

Your "adventure" seems very normie, you hadn't even heard about gcc, how noob can you get? I will help you since you also hate java, but that's the only reason.

Youtube is basically super-easy tier, but actually it is also "best" tier now and then. It also makes it a bit more human to listen to a dude explaining while you look at his computer screen than reading some ugly-ass webpage online:
youtube.com/results?search_query=how to compile c++ code

learn rust you stupid nigger. c/c++ is objectively shit.

You seem incapable of learning for some reason. Perhaps you should stop asking for help and instead read, read and read until you figure it out.
You are too used to being fed everything and hand-holded since brith. It's sad, really.


Nobody is supposed to bother. Figure it out on your own or give up and go play videogames.

Everybody here, including OP, is a massive faggot except this guy.

Also, i wouldn't try to start off learning how to program with C or C++ if you can't think of something you wanna do with it, but rather learn i.e Go, or some other simpler language which you can get stuff done quickly and feel good about it and motivated to learn more. I've written tiny utilities for i.e doing stuff to my router easily through simple commands like i.e "router restart" in Node, small websites in Go and i'm currently trying to make a small game that runs in the console in C.

One thing that comes to my mind at the moment but not might be true is that you'll more easily find beginner-friendly documentation and guides in more modern languages i.e Go, Rust ( where the websites won't also burn your eyes because they were written in 2004 ).

p.s If you get triggered at reading stuff and just want to get stuff done as quickly as possible, just DONT STOP trying to find guides and more accessible documentation and you'll eventually get the questions in your mind answered.

That's your problem user. Go install the 7gb of crap or better yet install linux.

OP, we have a board for this.
>>>/prog/

There are two ways of learning how to code/write program: the easy way, which will turn into a shit programmer that takes forever to write/fix anything, you will be confused most of the time, but it's the fastest road, and theres the hard way, which consists of learning the mathematical basis for everything you will do in this field.

It's called the hard way because it will take you years (2-3 years if you have a lot of free time) to finish this learning process, but at the end you will be able to get into any field of technology AND will be above 95% of programmers. Theres no escaping it, coding is pure math and logic, the sooner you start, the better.

This thread has everything you need for the hard way:
>>>/prog/3034

I would agree. It's easier than Java and more comprehensive than C. Plus it has a growing community.

That's a shitty opinion. Different languages do different things. There's no point in knowing just one.

Anyway, heres 500 programming books for free. At least ONE of these will help you (can't find non-ShitHub equivalent, sorry):
github.com/vhf/free-programming-books/blob/master/free-programming-books.md

Begin with a small programing language with a course that will make you "think how to make the program".
The little schemer is one of the best for that.
You've got this little tutorial to launch yourself but it's not near has good has the little schemer.
web-artanis.com/scheme.html
Here's the book
mitpress.mit.edu/books/little-schemer
Here's the pdf but I recommend you to buy the book because otherwise you'll never read it.
7chan.org/pr/src/The_Little_Schemer_4th_2.pdf
Here's also a github with examples
github.com/pkrumins/the-little-schemer

Then extend your knowledge with the book SICP.

To my defense I will say that python before the literal wave or normies that learned that language was pretty nice and cosy.

Pretty much this


Good idea.
I started with scheme.
Here's a link that can help for those who are impatient
web.archive.org/web/20170523193231/http://norvig.com/21-days.html

I just realized that you use windows.
Then here's the usual if you want to git gud.

INSTALL GENTOO

There is those things called "books".
Whenever you want to learn about anything, not just programming, I recommend you to read books.

I don't know how to articulate this, but I don't want to learn how to code because I already can. I can code relatively complex applications in javascript.

I want to learn to develop and use software properly. Every time I hear someone talk about javascript and/or how fast properly optimized programs can be I die a little inside. I can't even define the type of a variable I'm creating, let alone manipulate files or windows or control memory or use advanced technology like Vulkan or do anything other than stupid scripts on a web page.


Thanks, at least I got a compiler of some description so I can try writing some programs, I think.

It's telling me "'g++' is not recognized as an internal or external command". It works if I use "open_distro_window.bat", but how am I supposed to make that work with sublime text? I'll never know because I have no clue how any of this stuff works, I'm just following the instruction that says "install this, then click this" instead of being told what is happening, i.e. the exact problem I have when I try to learn any of this stuff. I don't properly understand what I'm using so I can only do what someone tells me to.


On the contrary I learn extremely fast, I don't think I'm particularly stupid either. I think I just need a very specific words to explain things to me or something, I need to understand the very fundamental of what I'm doing and what's happening, or else I feel like I'm not in control. It's difficult for me to get started, but when I finally "get it" I'll probably no longer need any help at all for the rest.

I'm also shit at describing/defining my problems, and by extension searching for answers. I feel like I'm in some deep valley between "normie" and "autist" where almost nobody else is.

I actually got it to work, I typed a wrong folder into the fucking PATH variable which made g++ not work anywhere except the provided .bat file. In the process I think I learned what the path names actually do, which is cool I guess.

A more important thing I learned by looking into the aforementioned folder is that g++ itself appears to be a program, not some mystical system attached somewhere in the command prompt or something. That is exactly the kind of information I need, because it gives me insight into how this stuff works, not just "how to do X task".

Anyway I can learn C++ with this, which at least gives me a direction. Going to be reading pic related now.

If you want basic C++ development on Windows, try installing code::blocks. It's not great, but it's a good start if you want to learn how to code C++.

I think you should first learn how to use the shell. I recommend dumping Windows and getting a Unix system, but it's not the end of the world if you want to stick with Windows. The shell is your workbench, if you don't have control over your workbench then you won't be able to have controls over your tools. GUI programs just keep you stupid. When I learned the shell I was amazed how many problems could be solved by gluing together just what the OS came with. That's why I say that Unix is my IDE, the shell is pure power right at your fingertips.

I also wrote some recommendations in another thread, not sure how useful those will be to you.

In my experience programming books are a waste of time, especially in physical form. They're good as reference material and glancing over, but not something you'd sit down and read end to end. This one in particular offers only a little more than a standard C beginners tutorial you'd find on the first page of a google search.

Imo, the most efficient way to learn any programming language is just to get coding with it straight away. All you need to read before you start is basic syntax and how to get your environment set up. Then just pick a simple programming challenge as a starting point (something like fizzbuzz) and work your way up from there. Don't worry about not knowing anything, you can google individual functions and ways to do certain things as you go and in the process you learn a lot more than just by reading a book.

So I hear, but it usually goes like "it's super duper useful I promise, here's an entire wikipedia on how to use it". I need to know exactly what purpose it serves and it needs to be a worth the effort, or else it's going to be very difficult to convince me. I'm still not convinced why I need it, since I already found a better way to compile the program than typing shit in the shell, the only reason went out the window as quick as it came in.

I want to use Linux but I've had too much frustration with that too. I don't want to work on my OS, I want to use it. And I also don't want to be limited in the hardware I can use. I'm definitely done with Microsoft though so once Win7 becomes too old I'm out.

Also thanks for those recommendations, some of them definitely sound interesting. I'll look into them when I'm done with current book assuming this isn't enough to get me going alone.

You'll start to realize why the shell is useful once you start writing larger programs. There are things you can do in the shell that you simply can't do reasonably in a GUI. Want to use git for source control on your code? Good luck figuring out git GUI. Want to debug your code by testing its output against known good results? You can automate that in the shell. Want to make a C++ program consisting of multiple header files, objects, or libraries? You'll soon realize why GNU make was invented.

You don't need to learn the shell immediately, but the sooner you do, the easier your life will become. Just familiarizing yourself with how you do basic tasks in the shell like moving/editing files, launching programs, and piping output should be enough to start.

vulkan-tutorial.com/ - learn it.

Also are you making a game engine? consider using SDL2 rather than ffmpeg if you are

Install those 7 gigabytes of microsoft shit and stop complaining, you arrogant shit.

If you want learn how to code, start with trainingwheels and don't try to be some elitists "everything I don't like is pajeet shit hurr durr" moron from day one. Once you get the hang of things you can get whatever the autists use. You need to earn that false sense of superiority.

This book is the book I started with. It's good.

It's because you're a nigger.
Why don't you write your own compiler, you fucking nigger.
youtube.com/watch?v=B5YokNW7tIs

t. faggot who lucked into productive habits as a kid

You are incapable of empathizing with people who have to make a start in adulthood.

sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win32/Personal Builds/mingw-builds/installer/mingw-w64-install.exe/download

codeblocks.org/

user: download Eclipse and the JDK and learn Java.

JDK:
oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Eclipse:
eclipse.org/downloads/

If you can't figure it out from there, then you are too fucking retarded to ever lean how to program.
When you want to move to C++: just install mingw and the C++ plugin for Eclipse: Eclipse will usually figure it out from there, assuming that you've installed mingw in the default location.

Don't bother with make or invoking the compiler: most devs set up a build system, get it working, and then drink off the pain of doing so.


So far, I have figured out how to open a Cygwin shell and use the console. git GUI is a piece of shit: why does it exist when TortoiseGit does?

Kill yourself.

feels bad man

CONSIDER MANUAL LABOR

Yeah, it worked great for me

Sorry about caps and all that shit btw

I'M A RETARDED SPERG

Ooops, I have this e-tick

Just wondering, you're asking about logistical problems like working with I/O, using other programs, compiling shit and makefiles, etc. instead of how to do an "algorithm" or programming concepts? Kind of like using git in a programming class and configuring whatever IDE they want you to use instead of the actual code you're producing. Or when they ask you for an algorithm to control something in class, but you don't know how they made the GUI where you can watch it do its work. I feel this something you that comes with experience and working computers instead of reading a specific book that will set you for life. And most times whenever you move to a new area you'll get stuck on basic shit, but it's often repetitive once you figure it out.
take this with a grain of salt. I'm shit a programming

Step 1: install Ubuntu.
Step 2: find out how to open the package manager.
Step 3: find out how to open a shell.
Step 4: do really basic shell stuff. Fly around directories.
Step 5: Hello world bash script.
Step 6: Search the Ubuntu package repo for gcc
Step 7: man gcc

Wrong. Fucking LARPers. Any time you "just get to coding" on something non-trivial without a design already mostly worked out it will end badly. What you're doing with that advice is giving beginners bad habits.

A beginner shouldn't be bogged down with design. they need to experiment to see what works and what does not. a beginner design will most likely be flawed anyways you don't need a design for simply programs trial and error faggot.

maybe if the person who was programming was smart enough to know how to map out his thoughts he would have come up with a design process or looked into it

That's exactly the opposite of what actually happens. The sooner mistakes are caught the quicker and easier they are to fix. Often by orders of magnitude. And the design stage is the first chance to catch them. If they don't learn to sketch out some sort of design first then they're going to make costly mistakes on anything more complicated than fizzbuzz.

Agreed. Which is why they should write a simple design in as much or as little detail as they think is necessary. User interface, rough code layout, or just what the code is meant to do, doesn't matter. Then write code based on that "design", see what works and what doesn't, updating the design as they go. From this they can get practice structuring and breaking down their thoughts, and see areas where they're over/underthinking things.

It's called iteration:

5. Get stuck with bad habit
6. Shitpost on Holla Forums

No, what you just described is called agile cancer, aka "oh shit, I coded it wrong, better iterate :-DDD". Takes up far more time than thinking the design through properly in the first place.

...

N O T A N I G G U R L I K E L I N U S
N
O
T

A

N
I
G
G
U
R

L
I
K
E

L
I
N
U
S

There are two main reasons: automation and freedom. You can automate any workflow, any amount of steps. And since the shell is a programming language you can have loops and conditions in your automated workflow. I have a case where the program spits out a bunch of files, but I need the file extension changed and every reference in a bunch of other files needs to be updated as well. Doing it by hand every time would take forever and I highly doubt there is a GUI application that does exactly what I need, but on the shell I can simply combine the 'find', 'sed' and 'mv' commands to solve the problem once and for all with just three lines of code: find all files of a given type, rename them (mv), then find all files of the other type and then update their contents based on a regular expression (using sed).

Freedom means you are not bound by someone else's design. With a GUI you can only do what the designer of that GUI intended, and the more features a shell has, the more complicated it gets. On the shell we use simple programs that only do one thing: find only finds files by criteria, mv only moves or renames files and sed only edits the text in files. However, by sticking those programs together we can solve much more complicated problems ourselves. And I have not even touched upon pipes which let you use the output of one program as input to another one, allowing you to plug completely unrelated programs into one another any way you like.

I myself used to be a GUI user as well, but I got more and more frustrated over time. Have you ever found a tutorial where it says "you have to click this", but "this" didn't exist because you were using a different version? That won't happen on the shell. The shell doesn't hold your hand, but it also doesn't hide anything from you. Often times I would find something like "add this to your compiler's linker flags", but I had no idea how to do that since the GUI hid the linker flags behind five menus. On the shell I just open my makefile and the linker flags are right in front of me where I put them myself.

Just install Ubuntu or some other newbie distro. There is no reason to go Gentoo autismo if you don't need to. I have set up Ubuntu for my parents, they had no trouble using it like they would any other casual operating system. Yeah, some things are in a slightly different place, but that's it.

I am working on vulkan and there is literally no way to write vulkan code without looking up things. Vulkan is like filling out 100 forms except you have to google what to put in all the fields just because of how fucking massive it is. Every single feature I add is 200 lines, every single major thing is 1000 lines. Nobody knows how to write vulkan off the top of their head except for some nvidia/AMD engineers who breathe this stuff. It was written for enterprise experts to write graphics code day in and day out with a very specialized body of knowledge. You can definitely get to the point where Vulkan is doable but its so specialized that the vast majority of programmers will have no fucking clue what you're doing.

If you just use an IDE like visual C++ you can start learning C++ without learning how compilers work (which will go great until your compiler fucks up and you dont know how to fix it) so you do have the right idea about this. Try this link:
landinghub.visualstudio.com/visual-cpp-build-tools

This should be the actual C++ compiler that you can download without downloading the massive fucking IDE that normally comes with it. What you're looking for is cl.exe, which is the actual visual C++ compiler.

And this is the explanation on how to use the compiler on MSDN:
msdn.microsoft.com/en-us/library/ms235639.aspx?hstc=268264337.27bb03247e44371c4685620abf1c9c4e.1495613035296.1495613035296.1495613035296.1&hssc=268264337.1.1495613035297&__hsfp=3107542752

I'm going to assume that you actually know how to use the console, if you get lost on this look up how to use the DOS window. This is the actual COMPILER that you will be using, although it really is actually doing all of the steps needed to compile a program (preprocessing, compiling, linking, and assembling) so you should be able to create your own .exe files.

I would personally recommend writing C with Pelles C IDE, which is made for Windows, but isn't an enormous bloated mess like VS and actually implements C11 (but nothing C++!)
which VS doesn't implement. You can get that here: pellesc.de/index.php?lang=en&page=download

Which is only 9 MB instead of 20 GB or however large the VS ide is now... so as far as IDE's on windows go I would recommend it over everything else when writing C.

1. install VirtualBox (free)
2. install whatever-linux or bsd VirtualMachine
2.1. install jew-emacs, glorious neovim (or vim), nano, homo-joe, gedit ...
2.2. install gcc or clang
2.3. try 'cc' or 'c++'
3. web.mit.edu/16.070/www/year2001/C_Crash_Course.pdf web.stanford.edu/class/cs193d/handouts/04-A-Crash-Course.pdf
4. stay away from current year meme shit; rust and go

everyone complained for years directx and opengl didn't have any room for hardware level optimizations so don't be surprised you now have to handle everything those libraries did by yourself

Tutorials are not for learning something. They're for "install this, then click this", quoting you. You need to read documentation. Read the Wikipedia page on what a compiler is, check out learnxinyminutes.com for learning the basic syntax of the language of your choice, then read through the standard library to glue something together at first. Then you can do other things. I recommend C in any case, most of the syntax is understandable in a few minutes (except pointers and function types, you'll get used to it), use C++ if you really want to but I find C++ really complicated. Also
Shrink your windows partition and install Ubuntu or some other friendly distro to get started with GNU/Linux. Windows is horrible for programming unless you're using Macrohard Visual Studio 9001. You'll face a shitton of problems with PATH, everything is locked behind a GUI, both the Command Prompt and PowerShell is garbage, and third-party solutions like Cygwin just won't work as well as they would in a Unix environment. Ubuntu provides the full Unix environment for programmming, the package manager has almost every programming language's compilers, interpreters and libraries under the sun, and the entire desktop (including Firefox, an office suite (!), media player and much more) is 6GB, compared to 9GB of Windows 10 for a bare install.

Fuck off. Stop recommending shittily designed languages with mile-long gotcha lists to beginners. Or anyone, really.

Go to university.

Or just learn to Google, maybe buy a textbook or something.

lmgtfy.com/?q=python documentation

>learnxinyminutes.com
When the Revolution comes Python 2 users will be first against the wall

kys

I hate to be the one to break it to you, but you have learning difficulties. Complex tasks might not be the best for you, no matter what kind of intelligence you think you might have.

The guy is trying to learn C++, which is at least as difficult as C and more complex (at least for me). Why don't you read the thread or the rest of my post first, Rustfag?

You are a fucking retard.

Also don't even try and write your own game engine, seriously. Use an existing game engine with proper developer tools which suits your own needs.

How to write and compile C++ code on Ubuntu or most other Linux distros
You may need to install the compiler, on Debian/Ubuntu the package 'build-essential' has everything you need.


mah nigga

1. I already have
2. ignoring the rest of your post

What's the point of starting a help thread if you won't even take anything?

What's the point of ""advice"" when it goes contrary to the problem?

The question was basically how do I learn to understand programming and computer software and write programs, and your solution is something akin to "lol that's dumb just use Unity".

I knew this would come in handy one day

I'm not complaining, i'm just pointing out to the op what "I want to use vulkan LOL" actually entails.

...

this, link OP?

Most things you find on the internet about programming are full of errors and bad habits.
There is so much information on programming and software design in books that you won't find on the internet.


Install a Linux distro if you want to program the easy way without having to deal with installers and incompatible stuff.
In a VM is fine if you don't want to reinstall your entire OS.

He's looking for an usb connector into his head so he'll become an expert by clicking a few links.

I just want to point out one thing: no one will ever teach you this shit. No one. This is shit you have to learn yourself.

University Education (I have one):

What kind of shitty uni uses microsoft cancer instead of free software to teach programming?

youtube.com/user/makinggameswithben
This guy is pretty good.

Some computers already have compilers and some don't. I switched laptops a few months ago and my new one doesn't have a compiler in it. I even copied the entire MinGW directory from my last laptop and put it in the new one and that didn't do anything.
If you can manage to figure out how to do it, there's a good IDE I would recommend using called CodeBlocks that you may have already heard of or downloaded.

It's about time someone said this. I was about to post a thread about it myself.

Also keep in mind that most of these people who learn to be programmers so quickly end up failing in their academic life... or life in general, for that matter.

OP is a normie that wants to learn coding because its hip.

Here is an advice, have autism and crack open couple dozen books about 700 pages each or download pdfs.
That should help you.

Hello World is not a game engine.


My advise was that you don't start out by tackling something as big as a game engine, that's like having never painted before and deciding that you want to recreate the Mona Lisa on your first attempt.

Modern game engines are very complex pieces of software to get working, getting it working smoothly is even harder. Even Quake3 is over 300 thousand lines of code.

There is a reason why many small game studios choose to use an existing engine as the base for their game, its because it removes the majority of the engineering work. This lets them focus on the stuff the player actually cares about, the gameplay, UI, etc.

I am not saying that no one should write a game engine from scratch, I was speaking within the context of your original post. When you have a game or two to your name and you know what it takes to make a game using an existing engine then you will be in a position to understand what it takes to make a game completely from scratch and be capable of making a rational decision on the matter.

>>>/prog/3034

Note that the OP of that thread no longer recommends the curriculum outlined in that post, but recommends

functionalcs.github.io/curriculum/

instead, which he also created.

Why the fuck would you use Vulkan? It's early and has very little support. If you don't know how to program, let the programmers decide what they want to work in!

stfu, rtfm, and diy.

#!/bash/bin#Example:#sh 4chan-catalog-dlv2.sh boards.4chan.org/g/catalogcurl $1 | grep -o ',"[0-9]\{5,10\}":' | sort -u > 4chandlfileslolwtfgrep -o "[0-9]\{5,15\}" 4chandlfileslolwtf > filter4chandlrm 4chandlfileslolwtfecho $1 |grep -o "/.\{1,10\}/" > nameofboard for thing in $(cat nameofboard)do board=$thingdonefor thread in $(cat filter4chandl)do echo $thread echo "This program will now start to download the entire board" curl "boards.4chan.org"$board"thread/"$thread | grep -o "i.4cdn.org/.\{1,25\}/[1-9][0-9]\{10,20\}\.[a-zA-Z0-9]\{2,10\}" | sort -u > my4chanfiles wget -c -N -i my4chanfiles rm my4chanfiles #be nice sleep 1 done

The most non-hip word in the United States

well, , , Microsoft Visual Studio is probably the best IDE out there. Doing anything but CLI programming requires managing a lot of back-end code, and Visual Studio does all that for you pretty much automatically. And it's free for personal use (at the moment).

Writing non-CLI progams (by hand!) on Linux is painful and bothersome, and that's the reason most open-source projects don't bother with it.

Another thing is that it isn't really possible to write "portable" code, other than Java. So don't worry about not knowing how to do that.
You might think that since MS Windows has a GUI and Linux can run a GUI that the code would be mostly the same, and it's not.
There's only two major GUI libraries for Linux, and many of the features in MS Windows simply aren't present.

the main problem that Linux/open-source software has is that they don't have decent help files. Good documentation is not quick or easy to do, and so many open-source writers just skip it entirely. They write a Cliff's-notes version that is more of a reminder to somebody who already knows how to use it.

Also another problem you frequently run into with trying to use "modular" open-source toolchains: each individual software has their own (little) instructions, but there isn't anywhere that tells you how to set up the WHOLE THING--- how to set program A to work with program B, and then how to get program B to work with program C. Often the web pages you find are out of date and refer to features or settings in the software that are no longer present.

The crippling aspect of most open-source software is the lack of good documentation. Nobody will write it since they're not getting paid for it.
And since it is the Socialist-model of software production, that's not going to change.

There's very few open-source projects that have grown into large-scale, well-integrated software products.
OpenOffice was one, but it had corporate help. And even now OpenOffice/LibreOffice still doesn't run nearly as well as MS Office.
GIMP was shitty for years because the GUI was obtuse and there was essentially no help files. It's better now, but still not real good.
And so it goes.