Jump to content

Where to start?

Guest

So I've been wanting to get into programming for games, programs, etc, but you obviously need to start somewhere basic, I just don't know where! I know the very basics of JavaScript and thats about it. TL;DR I wanna know what a good language to start out programming is.

Link to comment
Share on other sites

Link to post
Share on other sites

Well, Javascript, HTML and CSS can get you building things pretty fast.

i5 6600k and GTX 1070 but I play 1600-900. 1440p BABY!

Still, don't put too much faith in my buying decisions. xD 

Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, Abyss Gaming said:

So I've been wanting to get into programming for games, programs, etc, but you obviously need to start somewhere basic, I just don't know where! I know the very basics of JavaScript and thats about it. TL;DR I wanna know what a good language to start out programming is.

C, Java, C++, Python

 

Pascal?

Visual Basic? rip languages with no real purpose

 

You can code in Rainmeter too lol /s /s

 

 

 

No your post isn't that long to put a TL DR

 

Link to comment
Share on other sites

Link to post
Share on other sites

Python and Java are both good beginner languages. Go is probably also good for beginners, but I've never used it and the support for Go probably isn't as good as the support for Java and Python. You don't need to focus much on C or C++ right away, but you should learn about pointers and Stack vs Heap memory at some point because it helps you understand what you're making the computer do and why some things are faster than other things.

 

Python is a super simple scripting language that you can learn to do a lot with in a short amount of time due to its simplicity.

Java is pretty verbose, but it's still simple enough and it's great for learning Object Oriented Programming. Java is a compiled language.

 

One more thing, the language you pick initially doesn't matter much. Once you learn a few languages at a basic level, you'll see they're all mostly the same, just implemented differently to fit different purposes.

Link to comment
Share on other sites

Link to post
Share on other sites

35 minutes ago, Abyss Gaming said:

So I've been wanting to get into programming for games, programs, etc, but you obviously need to start somewhere basic, I just don't know where! I know the very basics of JavaScript and thats about it. TL;DR I wanna know what a good language to start out programming is.

on a non relavent note your gif is matching the beat of my music.

CPU-I7 4790

COOLER-Be Quiet Pure Rock Slim

MOBO-Gigabyte Z97 HD3

RAM-8GB G.skill Ripjaws X

GPU-Gigabyte GTX 1060 6GB G1 Gaming

SSD-Kingston SSDnow 240GB

HDD-Segate Barracuda 1TB

PSU-Zalman ZM 550w Goldrock Semi-Modular psu

CHASSIS-ThermalTake Core X31

Link to comment
Share on other sites

Link to post
Share on other sites

i advice building up from the basics,

1. a simple language learn loops, conditional statements

 

2. learn OOP (object orientated concepts (just the basics is enough)

 

2. then decide if you want to build from scratch (if so go to the end, under heading from scratch)

 

3. not from scratch learn c# you know javascript so all good (download unity)

 

4. Do these tutorials: https://unity3d.com/learn/tutorials

 

5. Should be good from here (further below i have advice)

 

 

From Scratch - may be confusing if your new to this

1. After doing the above minus the unity stuff

 

2. make a simple game using opengl and c++ (some good tutorials here: http://lazyfoo.net/tutorials/OpenGL/)

There may be a more recent adaptation for openGL but anyway, i advice doing all of them

 

3. learn UML, think of the features you want in your game/engine

 

4. learn design patterns specifically factory patterns and components (research around some don't like component design)

 

5. plan and split features into sections, start building ( i advice building everything from the main.c and once you get something working split it into another class (only because i'm really bad at life))

 

advice

1. ideas: write down everything, dreams idea's based on other peoples idea's based on shows you watched late into the night.

 

2. documentation, if you are with a team document everything including changes and meetings. get everyone to sign off on it befire adding it to the main documentation. if you are doing by yourself document where you can (it'll help remind you where you are if you need to drop the project for a bit)

 

3. team, if you have a team. lots of documentation, standards and what not (how big models/images should be art style ect). have weekly meetings to keep motivation. set team goals to accomplish (i have failed here before). stop feature creep, don't keep adding features unless you really need to. have a section for future additions.

 

4. have fun :D

 

If you want any document templates let me know,

wait for others to comment on my post to see if there are any glaringly obvious faults in my post

 

(i've worked on 4 games so far (non released for the public, they are all really bad))

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

For games:

YouTube - the coding train and go through all his P5.js/processing tutorials
 

Then download Unity and go through it's tutorials. It uses C# and JavaScript which, oh look, you just learnt.

Link to comment
Share on other sites

Link to post
Share on other sites

14 minutes ago, dylan0150 said:

For games:

YouTube - the coding train and go through all his P5.js/processing tutorials
 

Then download Unity and go through it's tutorials. It uses C# and JavaScript which, oh look, you just learnt.

I'm starting with HTML and CSS which isn't for games but my dad has a website for his business but it's like 10 years old so he said I should make him a new and better website. Also it was what code academy told me to start with :b

Link to comment
Share on other sites

Link to post
Share on other sites

22 minutes ago, Abyss Gaming said:

I'm starting with HTML and CSS which isn't for games but my dad has a website for his business but it's like 10 years old so he said I should make him a new and better website. Also it was what code academy told me to start with :b

Code academy is a decent place to start. w3 schools is amazing as a reference while doing so for any web stuff.

Link to comment
Share on other sites

Link to post
Share on other sites

On 21.3.2017 at 2:44 AM, Abyss Gaming said:

I wanna know what a good language to start out programming is.

Woo-hoo, my favorite topic!

 

Here's a number of (unsorted) recommendations for a beginner:

 

1. Start with Common Lisp!

 

Pros: Common Lisp, being a very mature language (first standardized in the 1980s), is quite unlikely to get major API breakages anytime soon, i.e. you won't have to adapt new language features every few years. It is basically an "executable lambda calculus", so it includes a lot of the shiny lambda and closure features other languages are still missing. The REPL allows you to gradually extend code which is currently running (i.e. modify your applications while using them). There are great and free books for it, e.g. Practical Common Lisp and Wikibooks. Paul Graham said that learning and using Lisp will make you a better programmer.

 

Similar to Python, Perl and other popular languages, there is a shitload of libraries you can just include and use. The language ecosystem is, despite of its age, alive and kicking. SLIME is probably the world's greatest IDE for any language. Performance-wise, certain Lisp implementations can even be faster than C. Code examples: See rosettacode.org.

 

Cons: Due to Lisp's unique approach, it will be hard for you to adapt any Lisp knowledge to non-Lisp languages. Don't worry, there are a lot of other Lisp languages, e.g. Clojure and Scheme. You can even script certain GNU applications like Emacs and The GIMP in a Lisp language. C-like languages are an entirely different thing though.

 

2. Start with Perl 5!

 

Pros: Perl 5 is an ubiquitous language, it is a part of the standard distribution of quite some operating systems so there is a good chance that you can start right away. Its legendary CPAN directory includes modules for quite anything. Perl inherits some of its specialties from shell scripts, so if you have ever used the shell of a Unix-like system, you might feel right at home. Perl 5 is also rather mature, currently being in its 24th release and still being maintained, so it is unlikely that you'll ever have to change your working code. As Perl is a pure scripting language (there is no official way to create a binary application with it), all it takes to modify your code is a text editor. There is no REPL though.

 

There is, of course, a good Wikibook for learning Perl. I've taught someone the basics of Perl within one week, so it is easy to adapt without any previous programming knowledge. Code examples are available on rosettacode.org again. As Perl uses certain constructs from C-like languages, you can even learn C, C++ etc. with your Perl knowledge later; also, PHP was initially based on Perl, so if you're interested in PHP, learning Perl might help you here.

 

Cons: Some people say that Perl's syntax reminds them of a swearing Donald Duck. Yes, there are a lot of symbols (@#$...) in a Perl script, helping you to understand what a certain variable is (array, hash, string, ...) and what it is not. - With Perl 6 (very) slowly replacing Perl 5, the advantage of having a very consistent package ecosystem may fade over the next decade.

 

3. Start with C!

 

Pros: C is everywhere. If your computer has an operating system, it (most likely) also has a C compiler, even on niche systems like RISC OS and Plan 9. Due to this fact, C has a library for anything, it can even be a great choice for web applications. As C's language core is often called a portable assembler, C code is usually translated to very efficient machine code, making your code do exactly what you expect it to without too much fiddling from your compiler or linker.

 

Cons: The learning curve of C is actually a vertical line. :) Seriously, C is not your friendly beginner's language, it basically punishes you for even the smallest mistakes. This could as well be a positive aspect though, you will learn to avoid sloppy coding. If you are afraid to jump into cold water, you might start with C++ instead, C++'s current revision C++17 is rather beginner-friendly and (almost) every valid C program is also a valid C++ program, so you are able to slowly turn your C++ code into C code while you learn the differences.

 

Concerning Python: Please don't use Python. It is a horrible language, teaching you a horrible coding style.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Dat Guy said:

Woo-hoo, my favorite topic!

 

Here's a number of (unsorted) recommendations for a beginner:

 

1. Start with Common Lisp!

 

Pros: Common Lisp, being a very mature language (first standardized in the 1980s), is quite unlikely to get major API breakages anytime soon, i.e. you won't have to adapt new language features every few years. It is basically an "executable lambda calculus", so it includes a lot of the shiny lambda and closure features other languages are still missing. The REPL allows you to gradually extend code which is currently running (i.e. modify your applications while using them). There are great and free books for it, e.g. Practical Common Lisp and Wikibooks. Paul Graham said that learning and using Lisp will make you a better programmer.

 

Similar to Python, Perl and other popular languages, there is a shitload of libraries you can just include and use. The language ecosystem is, despite of its age, alive and kicking. SLIME is probably the world's greatest IDE for any language. Performance-wise, certain Lisp implementations can even be faster than C. Code examples: See rosettacode.org.

 

Cons: Due to Lisp's unique approach, it will be hard for you to adapt any Lisp knowledge to non-Lisp languages. Don't worry, there are a lot of other Lisp languages, e.g. Clojure and Scheme. You can even script certain GNU applications like Emacs and The GIMP in a Lisp language. C-like languages are an entirely different thing though.

 

2. Start with Perl 5!

 

Pros: Perl 5 is an ubiquitous language, it is a part of the standard distribution of quite some operating systems so there is a good chance that you can start right away. Its legendary CPAN directory includes modules for quite anything. Perl inherits some of its specialties from shell scripts, so if you have ever used the shell of a Unix-like system, you might feel right at home. Perl 5 is also rather mature, currently being in its 24th release and still being maintained, so it is unlikely that you'll ever have to change your working code. As Perl is a pure scripting language (there is no official way to create a binary application with it), all it takes to modify your code is a text editor. There is no REPL though.

 

There is, of course, a good Wikibook for learning Perl. I've taught someone the basics of Perl within one week, so it is easy to adapt without any previous programming knowledge. Code examples are available on rosettacode.org again. As Perl uses certain constructs from C-like languages, you can even learn C, C++ etc. with your Perl knowledge later; also, PHP was initially based on Perl, so if you're interested in PHP, learning Perl might help you here.

 

Cons: Some people say that Perl's syntax reminds them of a swearing Donald Duck. Yes, there are a lot of symbols (@#$...) in a Perl script, helping you to understand what a certain variable is (array, hash, string, ...) and what it is not. - With Perl 6 (very) slowly replacing Perl 5, the advantage of having a very consistent package ecosystem may fade over the next decade.

 

3. Start with C!

 

Pros: C is everywhere. If your computer has an operating system, it (most likely) also has a C compiler, even on niche systems like RISC OS and Plan 9. Due to this fact, C has a library for anything, it can even be a great choice for web applications. As C's language core is often called a portable assembler, C code is usually translated to very efficient machine code, making your code do exactly what you expect it to without too much fiddling from your compiler or linker.

 

Cons: The learning curve of C is actually a vertical line. :) Seriously, C is not your friendly beginner's language, it basically punishes you for even the smallest mistakes. This could as well be a positive aspect though, you will learn to avoid sloppy coding. If you are afraid to jump into cold water, you might start with C++ instead, C++'s current revision C++17 is rather beginner-friendly and (almost) every valid C program is also a valid C++ program, so you are able to slowly turn your C++ code into C code while you learn the differences.

 

Concerning Python: Please don't use Python. It is a horrible language, teaching you a horrible coding style.

It's a shame that the vast majority of learning material for C++, including college classes still only seem to teach something only slightly better than "C with classes". C++11 and onward are a massive improvement.

 

About Python: Could you elaborate? If you're going to tell someone that it'll make them a bad programmer, you should at least tell them why. If you don't, they may take your word for it and make assumptions that you didn't intend for them to make.

Link to comment
Share on other sites

Link to post
Share on other sites

Hooray for pointless fullquotes.

8 minutes ago, noahdvs said:

Could you elaborate? If you're going to tell someone that it'll make them a bad programmer, you should at least tell them why.

Ah, yes, thank you. I was a bit lazy when answering.

  1. Python uses whitespace for syntax, limiting the use of "clean formatting". In other languages (except Ruby, fixed-style COBOL and Whitespace, of course), whitespaces are for readability, not for syntax. Python requires you to learn what the PEPs consider to be "clean formatting", not necessarily "good formatting".
  2. Python lacks brackets. In C- and Lisp-like languages, you can easily wrap a block inside a new "if" condition by just adding (...) or {...}. You can't do that in Python.
  3. Python's community is divided into Python 2 and Python 3 users. Those are incompatible with each other, resulting in a lot of problems when trying to use external modules.
  4. Python defaults to throwing exceptions for quite anything, meaning that you'll have to use try..catch in many situations where other languages would allow you to avoid the exceptions beforehand.
  5. Among the several style rules in Python is that you are recommended to write verbosely, basically blowing up your code pointlessly.

Some of those points might be subjective though.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

30 minutes ago, Dat Guy said:

Hooray for pointless fullquotes.

Ah, yes, thank you. I was a bit lazy when answering.

  1. Python uses whitespace for syntax, limiting the use of "clean formatting". In other languages (except Ruby, fixed-style COBOL and Whitespace, of course), whitespaces are for readability, not for syntax. Python requires you to learn what the PEPs consider to be "clean formatting", not necessarily "good formatting".
  2. Python lacks brackets. In C- and Lisp-like languages, you can easily wrap a block inside a new "if" condition by just adding (...) or {...}. You can't do that in Python.
  3. Python's community is divided into Python 2 and Python 3 users. Those are incompatible with each other, resulting in a lot of problems when trying to use external modules.
  4. Python defaults to throwing exceptions for quite anything, meaning that you'll have to use try..catch in many situations where other languages would allow you to avoid the exceptions beforehand.
  5. Among the several style rules in Python is that you are recommended to write verbosely, basically blowing up your code pointlessly.

Some of those points might be subjective though.

That wasn't what I was expecting and I don't see how it would teach you anything that harms your ability to work with other languages or programmers. In my opinion, the worst thing about Python is the inability to set the types of arguments in function signatures. This might not be the best example, but unless you look at the body or there's some documentation nearby, how do you know what you should as an argument in this function call? This could take a string, a tuple or an array.

use_ipv4(ip)

 

Link to comment
Share on other sites

Link to post
Share on other sites

That does not make you a worse programmer though. Python has more issues than that (including its awful performance), but none of them have any direct influence on your ability to write good code in other languages.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

16 minutes ago, Dat Guy said:

That does not make you a worse programmer though. Python has more issues than that (including its awful performance), but none of them have any direct influence on your ability to write good code in other languages.

I agree. I don't think Python has anything that really would make you a worse programmer, I was just talking about something that I think is a problem while we were on the subject of things about python we don't like.

Link to comment
Share on other sites

Link to post
Share on other sites

23 hours ago, Dat Guy said:

 

Cons: The learning curve of C is actually a vertical line. :) Seriously, C is not your friendly beginner's language, it basically punishes you for even the smallest mistakes. This could as well be a positive aspect though, you will learn to avoid sloppy coding. If you are afraid to jump into cold water, you might start with C++ instead, C++'s current revision C++17 is rather beginner-friendly and (almost) every valid C program is also a valid C++ program, so you are able to slowly turn your C++ code into C code while you learn the differences.

Total and utter nonsense. 

 

C++17 still assumes you have all the base theory from previous versions. Please don't tell me you think move semantics, variadic templates, lambdas, etc. are more beginner friendly than C. That'd be an idiotic assertion and would make it obvious that one doesn't know C++.

 

What tends to happen is:

People jump into C++ and then jump too far ahead of themselves. They're using new/delete before they even understand what the stack and heap is, how to pass around objects efficiently, RAII (for automatic state and resource management) and end up writing really bad code. People often suggest that people start with C before touching C++. Although I think this is good advice (I've never met a good C++ programmer who doesn't know C, but I've met dozens of great C programmers who have never touched C++), what you'll find is that beginner C++ books' initial chapters are almost always synonymous with the initial chapters of a beginners' C book. That's what people mean. Not: "hey, go learn the whole of libc". It's just useful to learn C/C++'s memory model without having the urge to jump ahead to things like smart pointers, move semantics, which make the whole situation a lot easier, prematurely and have to go back to re-learn fundamentals (which are, disregarding STL specifics and newer C++ languages features, inherited from C).

 

People strive for progress, they will not make any real progress if they begin by jumping into C++. Especially C++17. You're forgetting that, to implement these language features effectively, you need to understand the theory behind them. I don't expect a beginner to understand why an implicit copy constructor is deleted when an explicit move constructor is declared, or why attemping to move/forward const lvalue types to rvalue references will always bind to a const lvalue for backwards compatibility reasons, or how functors work, etc. etc. (I could go on)

 

C++ is not a small endeavour and should never be likened to some kind of 'easier C'. It's far from it. C++ may look pretty on the outside but that's because of the pain-staking effort expert software engineers over at the ISO committee have put into the standard for years on end. Just because it looks pretty doesn't mean the language doesn't remain a complete behemoth.

 

Here's a more suitable analogy:

Forget the heat of the water, if you jump into C you'll likely be able to catch your breath and remain afloat. If you jump directly into modern C++, you're gonna think you're floating until the quicksand pulls you under.

 

Or, as Bjarne Stroustrop puts it, eloquently:

"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off."

This is so true. If you don't understand the reasoning behind newer features of C++ and all of their related nuances, you will think you're making progress until you look back and realize you're still on square 1 because you tried to bypass language fundamentals.

 

As for Perl:

Perl is being ran into the ground by the imbecile who conceived it (seriously, Larry Wall is a delusional moron). Although I dislike Perl and Python, I'd recommend Python over Perl any day.

And, if my thought-dreams could be seen,
they'd probably put my head in a guillotine.
But, it's alright, ma, it's life, and life only.

Link to comment
Share on other sites

Link to post
Share on other sites

20 hours ago, noahdvs said:

It's a shame that the vast majority of learning material for C++, including college classes still only seem to teach something only slightly better than "C with classes". C++11 and onward are a massive improvement.

 

About Python: Could you elaborate? If you're going to tell someone that it'll make them a bad programmer, you should at least tell them why. If you don't, they may take your word for it and make assumptions that you didn't intend for them to make.

What you'll soon realise, if you haven't already: 95% of people teaching C++ do not know C++ all that well.

And, if my thought-dreams could be seen,
they'd probably put my head in a guillotine.
But, it's alright, ma, it's life, and life only.

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, stmfd sp!, {lr} said:

What you'll soon realise, if you haven't already: 95% of people teaching C++ do not know C++ all that well.

Yeah, I kind of noticed that, but C++ is such a complicated mess that it's hard to blame anyone for that. I hope something like Rust will be able to take the place of C++ (at least somewhat) in the future.

Link to comment
Share on other sites

Link to post
Share on other sites

13 hours ago, noahdvs said:

Yeah, I kind of noticed that, but C++ is such a complicated mess that it's hard to blame anyone for that. I hope something like Rust will be able to take the place of C++ (at least somewhat) in the future.

I wouldn't say C++ is that complicated. I'd learn Rust but, until I can see a worthwhile use-case, it's redundant for me. All of the features it has are things I've been using in C++ for the past 3 years and all of the things people think it's better than C++ for are literally things that are easy to avoid. There's a lot of theory in the way of a lot of things that most people aren't aware of in C++ but, let's be honest, how much programming do you expect to learn in school/university/whatever? Not a lot (especially if it's C++).

 

I think C++ is too large to be taught at universities. They should stick to teaching C and a language like Java (even though it's terrible, Java, unlike C#, lacks Microsoft's own language twists and is actually a great way to teach SOLID OOP).

And, if my thought-dreams could be seen,
they'd probably put my head in a guillotine.
But, it's alright, ma, it's life, and life only.

Link to comment
Share on other sites

Link to post
Share on other sites

On 3/21/2017 at 9:22 AM, uzarnom said:

Snip

 

 

 

Unity script is an alternative that's basically just JavaScript. 

Link to comment
Share on other sites

Link to post
Share on other sites

So, I'm going to split this post into 3 parts, and this is the first, I'll comment on languages mentioned above.

 

Golang:

It is a useful language which implements some features, that make it easier than C for example, but it's still pretty difficult. This is a comparison of code that I wrote in Golang first, and then code that I wrote in Ruby:

package main

import (
  "fmt"
  "strings"
  "io/ioutil"
)

func de (s []string) []string {
  var r []string
  for _, str := range s {
    if str != "" {
        r = append(r, str)
    }
  }
  return r
}

func main(){
  data, _ := ioutil.ReadFile("/proc/meminfo")
  s := string(data)

  memory_total := de(strings.Split(strings.Split(s, "\n")[0], " "))[1]
  memory_free := de(strings.Split(strings.Split(s, "\n")[2], " "))[1]
}
memory = YAML.load(File.open("/proc/meminfo"))
memory_total = memory["MemTotal"]
memory_free = memory["MemAvailable"]

Quite a difference, huh?

But, I think the real issue with Golang is that it was create with a very specific goal in mind (some networking), which you are unlikely to be interested in... At least so interested, to learn a whole new language. Doing other stuff with it, like GUI interfaces or games seems to be impossible for a beginner I think.

 

C:

The language is a legend. However, I don't think that its popularity will do you much good - it will be easier for you to do new stuff with way less popular languages, that have a package manager and easy to use libraries.

Just like with Golang, you'll write way more code than you actually need to.

With C, you will learn lots of things about computers, but the question is, do you really want to know them? There is a difference between a guy who just wants to make websites and money on it, and a guy who wants to know how the operating system works, at least out of curiosity. If you are the latter, you can still learn C later.

 

C++:

It's actually C, but with extra stuff. I think that to appreciate the ++ features, you first need to understand the base language well. Otherwise, they will just confuse you, and make you avoid some basic concepts.

 

C#:

This is one of my top recommendations. This is a language, that's used a lot in the enterprise, but it still provides lots of great usage scenarios for hobbyists. It's actually easier than C, Go, and other languages like that, despite not being as easy as Ruby for example. It might be intimidating at first, but if you go through the basics, it should become fairly easy to use.

There are just so many usage scenarios with this one - it's used to build apps through Xamarin, games with Unity or MonoGame, and it's also considered easy to build desktop GUI apps with it.

Its only disadvantage, in my eyes, is the lack of libraries and general support of (mostly) GUI stuff on Linux and macOS desktops.

 

Java:

It's actually a language that I didn't use much. It's similar to C# in its syntax, it's more multi platform, it's more widely used in enterprise (at least in my country), but it doesn't have so many great features for consumer stuff.

 

Rust:

It's a great language that's fairly similar to C and Go. However, I don't recommend it for a beginner, since it's still a difficult language, plus its documentation isn't very good in my opinion.

 

Ruby:

It's my favourite language. It's really easy to pick up, and it teaches you lots of different stuff that you will use in other languages. Its syntax is very consistent, and the language has pretty much everything you'll need when wanting to build basic programs. Together with Sinatra, Rails and Padrino frameworks, it's a great choice for web development. It has an easy to use package manager built in (like few others above) that gets you modules to build your next application.

However, I won't recommend it, why? Although very large, its community isn't very active, and trends are going in another direction. I'm personally going from Ruby to Elixir, as my to-go language for fun stuff.

 

Python:

I just don't like the language. Its community is huge, so you'll find lots of useful libraries and such, but the downside of that is, that there are lots of newbies, so you'll find quite a lot of false information. Other reasons are the ones here:

On 23/3/2017 at 8:11 PM, Dat Guy said:

Hooray for pointless fullquotes.

Ah, yes, thank you. I was a bit lazy when answering.

  1. Python uses whitespace for syntax, limiting the use of "clean formatting". In other languages (except Ruby, fixed-style COBOL and Whitespace, of course), whitespaces are for readability, not for syntax. Python requires you to learn what the PEPs consider to be "clean formatting", not necessarily "good formatting".
  2. Python lacks brackets. In C- and Lisp-like languages, you can easily wrap a block inside a new "if" condition by just adding (...) or {...}. You can't do that in Python.
  3. Python's community is divided into Python 2 and Python 3 users. Those are incompatible with each other, resulting in a lot of problems when trying to use external modules.
  4. Python defaults to throwing exceptions for quite anything, meaning that you'll have to use try..catch in many situations where other languages would allow you to avoid the exceptions beforehand.
  5. Among the several style rules in Python is that you are recommended to write verbosely, basically blowing up your code pointlessly.

Some of those points might be subjective though.

 

Part 2 - An Answer:

On 21/3/2017 at 3:13 AM, Pyrotechnika said:

Code academy is pretty lit.

I think it's pretty bad, and I've explained it in a separate topic.

Especially that OP already used it and knows the basics. The only advantage of codecademy is that it repeats stuff, so you learn it well, but you can do it yourself through experimentation.

 

Part 3 - The Choice:

JavaScript

I think that's the language you should keep on learning. You already know the basics of it, and you can do all the stuff you might want to do, so why not?

You can create user interfaces with HTML, CSS and JS itself - there are lots of frameworks for user interfaces, including React, Vue and Angular.

You can create back-end web server logic with it, using Node with frameworks like Express or Sails.

You can create games, using many game frameworks for JS, or use UnityScript (a modified version of JS) with Unity3D.

There is just so much stuff you can do with JS, there is a reason it's the most popular language.

Link to comment
Share on other sites

Link to post
Share on other sites

On 25/03/2017 at 10:16 PM, fpo said:

Unity script is an alternative that's basically just JavaScript. 

ahh yeah, thats why i crossed it out

Link to comment
Share on other sites

Link to post
Share on other sites

As said above continue JavaScript. I kept messing around trying to learn different languages and it's just a distraction. Just get good and make stuff. If you ever want to learn a second language (after you're really good at JavaScript) do C++ it's really popular and not going anywhere. It's been around since forever, and every language tries to be it and fails (imo, ie Java, python ruby, they're all just languages) 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×