I want to learn coding. What tools do I need, and where do I start?

by CompaIsMyWaifu

CompaIsMyWaifu
But I can be yours too <3
MLP
Posts: 411
Threads: 33
Joined: May 2015
Reputation: 15
03-01-2016, 07:31 PM (This post was last modified: 03-01-2016, 07:47 PM by CompaIsMyWaifu.)
#37361 (1)
I've been looking into eventually doing PC game development as a hobby, and while I do have the program RPG Maker, (which is a very bare-bones way to make some games without any coding experience) it will only get me so far before I hit a dead end. I want to be able to actually write my own software, not just point-and-click my whole way through it.

So as the title says, I want to start digging into coding languages but I don't know where to begin. I am thinking that C# or C++ would be an ideal end goal for a language to master but a lot of my sources tell me that both of these require more experience in other languages before I can tackle them. So first, a few questions:

-What would you consider to be a beginner's ideal coding language? What are some examples of what I could do with this language?

-What tools/software will I need to study the language? Will I need more than that to start writing my own code?

-Any research materials that you can recommend? Books, websites, YouTube channels, phone apps, desktop apps, anything at all.

Thanks in advance!

[+] 2 users love CompaIsMyWaifu's post
malmon
nya?
Torrents
Posts: 1,085
Threads: 18
Joined: Nov 2015
Reputation: 12
03-01-2016, 08:05 PM
#37362 (2)
In my opinion, the most pleasant language for beginners would be Python, but if you're looking in to game development, I don't think that starting with C/C++ would be a bad idea; they are definitely more difficult than Python or some of the other fancy modern languages, but they are about as involved as it gets without delving in to the world of Assembly, i.e. a lot of memory/data management is up to you, integers have real limits, arrays are a pain in the ass. While this can be rather overwhelming, it can teach you quite a bit about the more inner workings of the PC itself. Python just takes care of all that stuff for you. C# is also a popular choice, but I have no knowledge of it.

C is pretty barebones, though it would probably be useful to learn anyway if you're going down the C++ route, as the latter is heavily based on the former. C++ is often considered to be a language that once mastered, makes learning other languages trivial.

To start coding in Python, just download it from https://www.python.org/ - I use 3.4.4 x64, though a lot of people will be using 2.7, as it has the greatest package support.

For C/C++, if you're on Windows, you can use Visual Studio, though I would personally advise against that - I use gcc (for C) and g++ (for C++) that comes with Mingw-w64. If you're on Linux, then you could probably look up what development tools to use with your distros package manager, though it'll still be gcc and g++. If you're on a Mac, then I dunno.

I personally always just relied on some quick start guides on how to use the language, from then on Google/StackOverflow/CPlusPlus/PythonDocs is my friend. Thinking of a project or a simpler task that could be automated is also a good way of learning the language. I can PM you a couple of examples of what I've done, if you like.
[+] 2 users love malmon's post
Akiba
lewdest of them all
Music
Posts: 49
Threads: 5
Joined: Nov 2015
Reputation: 2
03-01-2016, 09:02 PM (This post was last modified: 03-01-2016, 09:05 PM by Akiba.)
#37369 (3)
Before I recommend a language, I suggest you get a good editor. My favorite editor is Atom: https://atom.io/.


There are two languages that I think are good for beginners.

Popular opinion: Javascript.

In 2016, this is the de facto language for all things web development and server scripting, and it's also the language with the highest associated salary (first year React developer salary is $150k+).

All you need to get started is a browser, since you can run Javascript directly in it.

But you probably want to go further and do actual development, so you should install Node.js: https://nodejs.org/en/

It's a quick download, coming in at an unbelievably tiny ~10 MB, which includes the Javascript runtime as well as the package manager, npm.

Javascript is pretty easy to pick up, and there are resources all over the net to help you do so.

Unpopular opinion: Haskell.

It gets a bad rap for being overly formal with abstract nonsense. But really, people who say that are just those who start off learning languages like Java and Python and proceed to confine themselves to a certain mindset.

Using this language is pretty much the only way to be certain that your programs are correct and bug free. Although the learning curve is steep, it'll quickly teach you the fundamentals of programming that most people would otherwise take years to understand.

To get started, you should download the Haskell Platform: https://www.haskell.org/downloads#platform. It'll give you a Haskell compiler, package manager, and some extra goodies that you might find useful later on.

The definitive resource for learning Haskell is this book: http://learnyouahaskell.com/. It walks you through the language and its concepts at a quick pace but it's also very clear and understandable.


I've been programming for many years, but these two are still, by far, the languages I use most. Both also happen to be excellent for game development; Javascript is used in many game engines and Haskell's type system is great for modeling Game Objects and hierarchies.
[+] 2 users love Akiba's post
tn5421
Sharing: For a better tomorrow
Torrents
Posts: 1,370
Threads: 36
Joined: May 2015
Reputation: 10
03-01-2016, 09:19 PM
#37378 (4)
I can chip in with some ebooks whenever you'd like. My collection isn't the best right now but I can expand it :3

my sc2 replays&info | my osu stuff | my steam | my HB
Do you like to read or write fanfiction?  Then please check out my usergroup.
[+] 1 user loves tn5421's post
None_At_All
Avid Keyboard Pummeler
Language
Posts: 477
Threads: 15
Joined: Feb 2015
Reputation: 9
03-01-2016, 09:32 PM (This post was last modified: 03-01-2016, 09:32 PM by None_At_All.)
#37387 (5)
If you want to make a living through programming, I'd recommend taking Akiba's route. It'll help you be more well-rounded, I think (I'm far from being knowledgeable on the matter). I'd recommend Sublime Text 3 over Atom, though.

If you'd like to get into game development, I'd recommend doing what malmon73 suggested. I also can't recommend Tom Francis's How To Make a Game With No Experience Gamemaker tutorial playlist enough. It's pretty basic, but it's not drag and drop, and it can get you into making decent games pretty quickly.

What I personally really want to strive for is focusing on more conventional programming for a living (maybe becoming a freelancer) and making nice games on the side.

This question's a bit thread-hijacky but I feel like it's relevant to the topic - how do any of you guys stay motivated to learn?

I usually try to learn something but fizzle out before making too much progress. I (technically) know Javascript and Ruby but I've no idea how they're actually used because, again, I've never bothered to learn properly. It's really frustrating and I just wanted to know if you have any methods, or if you just kind of 'do it'.

In reality, all he's doing is pushing the same buttons he always has, nothing has changed. The longer he spends here, the more invested he gets, the more he forgets which life is the real one.
----
Steam | HBird
[+] 3 users love None_At_All's post
Melancholy
すけべ
Admin
Posts: 3,863
Threads: 213
Joined: Jul 2014
Reputation: 60
03-01-2016, 09:38 PM
#37391 (6)
PHP is a great place to start if you want to learn how not to code.

I personally think that adopting something like Ruby or Crystal would help give you the logic behind coding as their syntax closely resembles english.

If you delve into Ruby, it'd be beneficial to code things for Ruby on Rails, where the community is very strict on their coding standards and will overall help you become a better coder.

[+] 2 users love Melancholy's post
CompaIsMyWaifu
But I can be yours too <3
MLP
Posts: 411
Threads: 33
Joined: May 2015
Reputation: 15
03-01-2016, 11:31 PM
#37418 (7)
Holy shit this thread blew up fast... Thank you SO SO MUCH GUYS!!! To say I am overwhelmed by all this information at once is an understatement, but I will make note of every last bit you've given me.

I've been working on a couple small tasks with Codecademy's Python course, so I'll stick to that for now as my first baby steps. I'll try to keep you all updated on my progress and let you know if I run into any problems later. Thank you so much! <3

[+] 1 user loves CompaIsMyWaifu's post
Akiba
lewdest of them all
Music
Posts: 49
Threads: 5
Joined: Nov 2015
Reputation: 2
03-01-2016, 11:43 PM
#37420 (8)
(03-01-2016, 09:32 PM)None_At_All Wrote: how do any of you guys stay motivated to learn?

I get off on being in an ivory tower so haskell was pretty easy
[+] 2 users love Akiba's post
Kwazzi
Junior Member
Kohai
Posts: 1
Threads: 0
Joined: Mar 2016
Reputation: 0
03-01-2016, 11:54 PM
#37421 (9)
At the risk of being called a Microsoft shill, I'm going to recommend C#.

In my opinion, it's the easiest language to *do* things in.

In a very short amount of time, you can have a GUI application that leverages APIs, reads and modifies database information, and keeps everything threaded and working efficiently.

I'm biased, because I use it for work, but it really is a dream to program in compared to something like C++ and Python.
Akiba
lewdest of them all
Music
Posts: 49
Threads: 5
Joined: Nov 2015
Reputation: 2
03-02-2016, 12:04 AM (This post was last modified: 03-02-2016, 12:13 AM by Akiba.)
#37422 (10)
(03-01-2016, 11:54 PM)Kwazzi Wrote: At the risk of being called a Microsoft shill, I'm going to recommend C#.

In my opinion, it's the easiest language to *do* things in.

In a very short amount of time, you can have a GUI application that leverages APIs, reads and modifies database information, and keeps everything threaded and working efficiently.

I'm biased, because I use it for work, but it really is a dream to program in compared to something like C++ and Python.

Threads are dumb, you Microsoft shill.

Spoiler

But srs. C# is actually pretty fun, because the standard library has so much stuff. And it's pretty fast.

It's just that I don't like property getters, since obfuscating function calls is really, really bad practice. The worst part is that a huge chunk of the standard library uses it.

And it makes OOP even more complicated with sealeds, partials, extension methods, covariance/contravariance, and whatnot. OOP is kinda bullshit in the first place, hence my aversion to Java, C#, C++ etc.

As for async, Promises/coroutines are usually better than raw threads because they give you mutex for free.
Lambda
Junior Member
Kohai
Posts: 22
Threads: 1
Joined: Feb 2016
Reputation: 0
03-02-2016, 01:47 AM
#37427 (11)
I would recommend you to start with c, shure its not the easiest language but you'll learn all the basic stuff

SCIENCE!
matt
Unregistered
 
03-02-2016, 03:29 AM
#37433 (12)
If you want to go into game development, I suggest C, C++, and Python. Pretty sure C++ is the most popular language for game development, but I know Python is partially used in some game engines.
RX14
Chibi Hentai Master
Optimist
Posts: 501
Threads: 5
Joined: Nov 2015
Reputation: 1
03-02-2016, 01:29 PM
#37456 (13)
C# is a very nice language to start with: it has pretty good tooling, and a good IDE. It's also c-like with a good standard library and loads of reference material. As you get further in, there are advanced features like closures and LINQ which are very, very useful. Plus it have pretty much the second best GUI toolkit (after HTML/CSS): WPF.

I would recommend against C/C++ or any langauge with manual memory management as a first langauge. It's one less thing to worry about.

Python is also a great starting langauge, where you can start right from a blank file and discover concepts and ideas as you go along.

Ruby is an interesting choice, it's a very productive language for me, but it has very many special cases, and weird things in the standard library which might trip you up. I would hesitate to reccomend it as a first language, but it's a great second one once you feel you understand how langauges work.

JS is another good choice: again, plenty of resources and widespread use. ES6 seems to smooth most of the warts out and provide some pretty cool features. If you do JS make sure to utilise ES6 syntax.

I think that it doesn't matter which language you choose, as long as you stick to it. You can even start with visual basic and become an amazing programmer, it simply depends on your motivation and discipline.

To summarise:
- Pick whatever language takes your fancy/has the best tutorials.
 - I would personally start with a dynamic langauge.
- Don't start with gamedev, it's hard.
- Make sure you learn more then one langauge (not too soon though, you should be confident with one first), each one provides a different perspective and a broader view on programming which will help you even if you never use that language seriously.

[Image: 68747470733a2f2f6177772e6d6f652f683731666e372e706e67]
English animemester
[+] 1 user loves RX14's post
suicid3Panda
best bulli
Banned
Posts: 789
Threads: 52
Joined: Jun 2015
03-02-2016, 08:18 PM
#37520 (14)
Compa asked for advice on programming in this community... RIP

prepare to be assaulted with so many conflicting opinions, you'd swear you were at a feminist rally.
[+] 2 users love suicid3Panda's post
tn5421
Sharing: For a better tomorrow
Torrents
Posts: 1,370
Threads: 36
Joined: May 2015
Reputation: 10
03-02-2016, 09:46 PM
#37537 (15)
Pandabear, this isn't a feminist rally, this is lewd.

my sc2 replays&info | my osu stuff | my steam | my HB
Do you like to read or write fanfiction?  Then please check out my usergroup.
Melancholy
すけべ
Admin
Posts: 3,863
Threads: 213
Joined: Jul 2014
Reputation: 60
03-03-2016, 01:52 AM
#37552 (16)
(03-02-2016, 08:18 PM)suicid3Panda Wrote: Compa asked for advice on programming in this community... RIP

prepare to be assaulted with so many conflicting opinions, you'd swear you were at a feminist rally.

I think Compa will get all the help he needs here, there's some pretty knowledgeable people here.

malmon
nya?
Torrents
Posts: 1,085
Threads: 18
Joined: Nov 2015
Reputation: 12
03-03-2016, 03:29 AM
#37565 (17)
(03-02-2016, 09:46 PM)tn5421 Wrote: Pandabear, this isn't a feminist rally, this is lewd.

Wait what? Why didn't I know about this before?! This should have been clarified much earlier. I am offended! >:(
nerd
the nigga ya love to hate
Nyandere
Posts: 746
Threads: 40
Joined: Jul 2015
Reputation: 18
03-03-2016, 05:34 PM
#37606 (18)
do NOT use JavaScript or PHP unless you specifically want to make web apps and things.

Java is a good beginner language for desktop apps imo, and so is C#. they are both very similar.

malmon
nya?
Torrents
Posts: 1,085
Threads: 18
Joined: Nov 2015
Reputation: 12
03-03-2016, 06:00 PM
#37610 (19)
(03-03-2016, 05:34 PM)nerd Wrote: Java is a good beginner language for desktop apps imo

Funnily enough, the only Java program with a good GUI that I've ever used has been Minecraft.
[+] 1 user loves malmon's post
Melancholy
すけべ
Admin
Posts: 3,863
Threads: 213
Joined: Jul 2014
Reputation: 60
03-03-2016, 06:22 PM
#37615 (20)
(03-03-2016, 06:00 PM)malmon73 Wrote:
(03-03-2016, 05:34 PM)nerd Wrote: Java is a good beginner language for desktop apps imo

Funnily enough, the only Java program with a good GUI that I've ever used has been Minecraft.

Not even Minecraft uses Java anymore.

Lambda
Junior Member
Kohai
Posts: 22
Threads: 1
Joined: Feb 2016
Reputation: 0
03-03-2016, 06:40 PM
#37619 (21)
(03-03-2016, 06:00 PM)malmon73 Wrote:
(03-03-2016, 05:34 PM)nerd Wrote: Java is a good beginner language for desktop apps imo

Funnily enough, the only Java program with a good GUI that I've ever used has been Minecraft.
But who needs a GUI anyway,  a cli is often way easier to use

SCIENCE!
malmon
nya?
Torrents
Posts: 1,085
Threads: 18
Joined: Nov 2015
Reputation: 12
03-03-2016, 08:25 PM
#37623 (22)
(03-03-2016, 06:40 PM)Lambda Wrote:
(03-03-2016, 06:00 PM)malmon73 Wrote:
(03-03-2016, 05:34 PM)nerd Wrote: Java is a good beginner language for desktop apps imo

Funnily enough, the only Java program with a good GUI that I've ever used has been Minecraft.
But who needs a GUI anyway,  a cli is often way easier to use

Must emphasise the subjectivity of that statement ;)
nerd
the nigga ya love to hate
Nyandere
Posts: 746
Threads: 40
Joined: Jul 2015
Reputation: 18
03-03-2016, 10:03 PM (This post was last modified: 03-03-2016, 10:04 PM by nerd.)
#37633 (23)
(03-03-2016, 06:22 PM)Senpai Wrote:
(03-03-2016, 06:00 PM)malmon73 Wrote:
(03-03-2016, 05:34 PM)nerd Wrote: Java is a good beginner language for desktop apps imo

Funnily enough, the only Java program with a good GUI that I've ever used has been Minecraft.

Not even Minecraft uses Java anymore.

what the fuckity fuck are you on about? as someone who works with the code of Minecraft, it certainly does still use Java. windows 10 edition uses like c# or something but that's not the official game as of now.

Melancholy
すけべ
Admin
Posts: 3,863
Threads: 213
Joined: Jul 2014
Reputation: 60
03-03-2016, 10:06 PM
#37635 (24)
(03-03-2016, 10:03 PM)nerd Wrote:
(03-03-2016, 06:22 PM)Senpai Wrote:
(03-03-2016, 06:00 PM)malmon73 Wrote:
(03-03-2016, 05:34 PM)nerd Wrote: Java is a good beginner language for desktop apps imo

Funnily enough, the only Java program with a good GUI that I've ever used has been Minecraft.

Not even Minecraft uses Java anymore.

what the fuckity fuck are you on about? as someone who works with the code of Minecraft, it certainly does still use Java. windows 10 edition uses like c# or something but that's not the official game as of now.

it told me to uninstall minecraft and install a new non-java version on osx.

matt
Unregistered
 
03-03-2016, 10:59 PM
#37636 (25)
(03-03-2016, 10:06 PM)Senpai Wrote: it told me to uninstall minecraft and install a new non-java version on osx.

I think they are using a stand-alone version of it now where it is already bundled with the game