• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 18:59
CEST 00:59
KST 07:59
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Code S RO8 Preview: Rogue, GuMiho, Solar, Maru2BGE Stara Zagora 2025: Info & Preview27Code S RO12 Preview: GuMiho, Bunny, SHIN, ByuN3The Memories We Share - Facing the Final(?) GSL47Code S RO12 Preview: Cure, Zoun, Solar, Creator4
Community News
BGE Stara Zagora 2025 - Replay Pack1Weekly Cups (June 2-8): herO doubles down1[BSL20] ProLeague: Bracket Stage & Dates9GSL Ro4 and Finals moved to Sunday June 15th13Weekly Cups (May 27-June 1): ByuN goes back-to-back0
StarCraft 2
General
BGE Stara Zagora 2025 - Replay Pack Code S RO8 Preview: Rogue, GuMiho, Solar, Maru Jim claims he and Firefly were involved in match-fixing The SCII GOAT: A statistical Evaluation StarCraft 1 & 2 Added to Xbox Game Pass
Tourneys
[GSL 2025] Code S:Season 2 - RO8 - Group A Sea Duckling Open (Global, Bronze-Diamond) Bellum Gens Elite: Stara Zagora 2025 $3,500 WardiTV European League 2025 Sparkling Tuna Cup - Weekly Open Tournament
Strategy
[G] Darkgrid Layout Simple Questions Simple Answers [G] PvT Cheese: 13 Gate Proxy Robo
Custom Maps
[UMS] Zillion Zerglings
External Content
Mutation # 477 Slow and Steady Mutation # 476 Charnel House Mutation # 475 Hard Target Mutation # 474 Futile Resistance
Brood War
General
BW General Discussion BGH auto balance -> http://bghmmr.eu/ FlaSh Witnesses SCV Pull Off the Impossible vs Shu StarCraft & BroodWar Campaign Speedrun Quest Will foreigners ever be able to challenge Koreans?
Tourneys
RECOVER LOST BTC USDT FUNDS RECLAIMER COMPANY [ASL19] Grand Finals [BSL20] GosuLeague RO16 - Tue & Wed 20:00+CET NA Team League 6/8/2025
Strategy
I am doing this better than progamers do. [G] How to get started on ladder as a new Z player
Other Games
General Games
Path of Exile Stormgate/Frost Giant Megathread What do you want from future RTS games? Armies of Exigo - YesYes? Nintendo Switch Thread
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
LiquidLegends to reintegrate into TL.net
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread Vape Nation Thread European Politico-economics QA Mega-thread
Fan Clubs
Maru Fan Club Serral Fan Club
Media & Entertainment
Korean Music Discussion [Manga] One Piece
Sports
2024 - 2025 Football Thread Formula 1 Discussion NHL Playoffs 2024
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
A Better Routine For Progame…
TrAiDoS
StarCraft improvement
iopq
Heero Yuy & the Tax…
KrillinFromwales
I was completely wrong ab…
jameswatts
Need Your Help/Advice
Glider
Trip to the Zoo
micronesia
Customize Sidebar...

Website Feedback

Closed Threads



Active: 25561 users

Learning to Program

Blogs > micronesia
Post a Reply
Normal
micronesia
Profile Blog Joined July 2006
United States24645 Posts
February 03 2012 21:50 GMT
#1
I've talked a bit about computer programming on TL before, but honestly it was years ago and I haven't given it much thought since. Before I start, here is a brief background in my coding experience:

+ Show Spoiler +
In high school I took a half year course in Visual Basic, a half year course in Java, a half year course in C++, and then I did a full year course (AP Comp Sci) in C++ (last year it was in C++ before it switched over to java). All of my C++ coding was done in the Borland C++ 5.02 IDE (I probably couldn't code in C++ without it rofl). In my spare time over the next couple of years I made some more programs in C++ as I was the most experienced in it and preferred it the most among the languages I had experience with.


I'm kind of sad that I don't do any computer programming anymore. In my spare time (when it comes up in the future at least) I should try to get back into coding. I don't need to be a professional coder, but I enjoyed computer science and liked being able to make useful programs (the idea of making games for fun or on the side is also appealing even though I realize it isn't something I could become capable of overnight). Let's say I decide I want to get back into it. The two question are:

1) What language should I focus in; how do I get started software-wise
2) What resources should I use to help me brush up and then learn new information?

I don't foresee myself taking any programming classes at a college so I'm going to have to try to do this myself. Perhaps other people have preference regarding those two questions (and other readers might benefit from reading about those preferences as well).

I just read the following which gave me some ideas, but I'm still kinda lost: http://regulargeek.com/2009/02/11/what-programming-language-should-i-learn/

What are the pros/cons of continuing with C++? If I liked C++, what is another language that I will probably also like that will be more useful? Ultimately, I know the most important question I need to answer myself before anyone can truly help me is what I plan to do with the language I choose to code in. Aside from my earlier answer of (enjoyed programming; make useful programs; possibly make games) I really don't know.

My fear is I will spend many hours learning to program in a language, and it turns out it is the worst language for doing whatever I want. Please share your thoughts!

***
ModeratorThere are animal crackers for people and there are people crackers for animals.
fabiano
Profile Blog Joined August 2009
Brazil4644 Posts
February 03 2012 21:57 GMT
#2
Man, if you are a creative mind, pick up Java Android and become billionaire with your awesome app that took 2 days to code up! :D

Once you know OO, then learning another OO language equals learning the language syntax, so stick with whatever language you feel more confortable with. With my biased take on it, I would go with Java.
"When the geyser died, a probe came out" - SirJolt
Darkren
Profile Blog Joined February 2010
Canada1841 Posts
February 03 2012 21:58 GMT
#3
From my experience and from seing friends who are in the field the 2 most important programs to learn are PHP and C++.

After it really depends on what u want to create most professionnal websites are made in PHP, while alot of them can also be made in C++, PHP is considered more safe and more reliable.

Seing as u are in games u should continue with C++ and maybe add a bit of java in there just for good mesure. Ill leave the explanation of the program to someone more competant than myself.
"Yeah, I send (hopefully) helpful PM's quite frequently. You don't have to warn/ban everything" - KadaverBB
Darkren
Profile Blog Joined February 2010
Canada1841 Posts
February 03 2012 21:59 GMT
#4
On February 04 2012 06:57 fabiano wrote:
Man, if you are a creative mind, pick up Java Android and become billionaire with your awesome app that took 2 days to code up! :D

Once you know OO, then learning another OO language equals learning the language syntax, so stick with whatever language you feel more confortable with. With my biased take on it, I would go with Java.


java is a really easy to learn and doesn't have complicated function like loopholes that u can do in c++ and in PHP. Going that route is the easy way but will hinder u in the long term
"Yeah, I send (hopefully) helpful PM's quite frequently. You don't have to warn/ban everything" - KadaverBB
tofucake
Profile Blog Joined October 2009
Hyrule19026 Posts
Last Edited: 2012-02-03 22:08:32
February 03 2012 22:06 GMT
#5
On February 04 2012 06:58 Darkren wrote:
From my experience and from seing friends who are in the field the 2 most important programs to learn are PHP and C++.

After it really depends on what u want to create most professionnal websites are made in PHP, while alot of them can also be made in C++, PHP is considered more safe and more reliable.

Seing as u are in games u should continue with C++ and maybe add a bit of java in there just for good mesure. Ill leave the explanation of the program to someone more competant than myself.

"wat" basically covers how I feel about everything you said here

Fuck PHP. It's too easy to learn just enough, and extremely hard to learn what you should know. Stick with C++ or go with C#.

In fact, just go with C#. As for how to actually learn how to use it, there's a few schools of thought:
1. Take a class/read a bunch of tutorials/buy some books, etc
2. Dive in

Personally, I like method 2. I learned a lot of my programming by just downloading sources of things and playing with it until I learned what everything did. This method isn't for everyone though.
Liquipediaasante sana squash banana
Sc1pio
Profile Blog Joined August 2009
United States823 Posts
February 03 2012 22:14 GMT
#6
It depends on what you want to do. If you want to code stuff for Windows, I reccomend learning C# with Visual Studio. Visual Studio is basically cheating when it comes to UI programming, it literally does everything for you.

If you want to code mobile apps, learn Java (really similar to C#) and learn Android. It's a very simple to understand framework for coding and there are Visual Studio-esque tools for it (Eclipse with Google's own addon).
"In the beginner's mind there are many possibilities, in the expert's there are few. " -Shunro Suzuki | fortuna fortes adiuvat
micronesia
Profile Blog Joined July 2006
United States24645 Posts
February 03 2012 22:19 GMT
#7
Thanks so far for weighing in... someone on IRC just recommended Javascript to me. When I asked what it does and doesn't allow me to do, he said everything and nothing... so a strong endorsement.
ModeratorThere are animal crackers for people and there are people crackers for animals.
shannn
Profile Blog Joined May 2010
Netherlands2891 Posts
February 03 2012 22:19 GMT
#8
On February 04 2012 07:14 Sc1pio wrote:
It depends on what you want to do. If you want to code stuff for Windows, I reccomend learning C# with Visual Studio. Visual Studio is basically cheating when it comes to UI programming, it literally does everything for you.

If you want to code mobile apps, learn Java (really similar to C#) and learn Android. It's a very simple to understand framework for coding and there are Visual Studio-esque tools for it (Eclipse with Google's own addon).

Or go learn Objective-C and program for iOS

But you'll need a Mac OS to use Xcode to program.
http://www.teamliquid.net/forum/viewpost.php?post_id=6321864 Epic post.
uzyszkodnik
Profile Joined April 2010
Poland64 Posts
February 03 2012 22:24 GMT
#9
stick to c++ at least you'll know how to manage your memory,
and as the syntax of most of the programming languages is similar to C/C++ you wont have difficulties with learning new language.

But if you want to go supercasual with that try python - it has garbage collector all kinds of magic programming stuff
and syntax which forces readable code.

And as for learning i'd recommend you to create your own game.
It doesnt need to have awesome graphics - you can make just text-based one( you dont need to know much
to do it, just how to handle strings and some loops/conditional instructions if you want to make it really simple later on you can add dialog lists quests and stuff) , but during that
you will learn how to manage your code and all needed language constructs.
After that hit a 2d game and later on maybe 3d?
micronesia
Profile Blog Joined July 2006
United States24645 Posts
February 03 2012 22:26 GMT
#10
I haven't made a decision yet but I think it's clear that C++, given my experience and its usefulness is a good candidate for the language I should choose to work with more. If so, what is the best way to me to get started? I will need:

1) The software to compile/run the code (I liked coding in Borland so maybe I should use an IDE?)
2) An informational resource (or multiple) that I can use to look things up, and maybe to teach myself coding (in addition to learning by experience)
ModeratorThere are animal crackers for people and there are people crackers for animals.
FaRess
Profile Joined September 2010
Tunisia937 Posts
February 03 2012 22:28 GMT
#11
Since you don't clearly know what kind of things and on which platform your going to do, I would suggest you to go with C# :

- easier than C++, and good follow up since it's your base

- object oriented language, which means that at the end of the day if you want to change and learn another language (java, python,php) you will already know the concept of most of the other languages thus you will be able to transition without too much problem.

- The diversity of environment you can work on :

--Web (Asp.net,Silverlight)

--Desktop (WPF,Windows Form,Window 8 apps)

--Phone :
--- Applications with silverlight
--- XNA games
YoloStar <3
MrShankly
Profile Blog Joined October 2009
United Kingdom371 Posts
Last Edited: 2012-02-03 22:40:27
February 03 2012 22:39 GMT
#12
On February 04 2012 07:06 tofucake wrote:
Show nested quote +
On February 04 2012 06:58 Darkren wrote:
From my experience and from seing friends who are in the field the 2 most important programs to learn are PHP and C++.

After it really depends on what u want to create most professionnal websites are made in PHP, while alot of them can also be made in C++, PHP is considered more safe and more reliable.

Seing as u are in games u should continue with C++ and maybe add a bit of java in there just for good mesure. Ill leave the explanation of the program to someone more competant than myself.

"wat" basically covers how I feel about everything you said here

Fuck PHP. It's too easy to learn just enough, and extremely hard to learn what you should know. Stick with C++ or go with C#.

In fact, just go with C#. As for how to actually learn how to use it, there's a few schools of thought:
1. Take a class/read a bunch of tutorials/buy some books, etc
2. Dive in

Personally, I like method 2. I learned a lot of my programming by just downloading sources of things and playing with it until I learned what everything did. This method isn't for everyone though.

I agree with the method 2 thing! You can always get books/check online/ask online if you get stuck, and as people say you learn by doing!

Also language wise, if you feel comfortable, you may aswell stick to it. If you feel like trying out another language for experience i would try Csharp. For an idea, there are visual studio "express" editions that you can use for free!
Lots of love
-Shanks
DONATE SC2 BETA KEY TO ME PLEASE
Assault_1
Profile Joined April 2009
Canada1950 Posts
February 03 2012 22:43 GMT
#13
learning a language is easy dude, anyone can learn a new programming language in a few hours
the hard part is learning concepts, like efficient algorithms/data structures and knowing how to program object-oriented vs functional
You always try to make ur code as simple and readable as possible

anyway, CS is probably the easiest field to find a (good) job in
munchmunch
Profile Joined October 2010
Canada789 Posts
February 03 2012 23:49 GMT
#14
The secret about programming languages is that you can program anything with any language, if you know what you are doing. If you want to continue with C++, GNU provides a free C/C++ compiler. There is no IDE, so you have to get used to editing the text files yourself. But arguably, this is more enjoyable for recreational programming anyway. The jumpstart that an IDE gives you is useful if either (a) you are on a deadline, and don't have time to learn how the language / libraries work, or (b) you spend so much time programming that you can learn exactly how all the IDE's features work. When you are programming for fun, the IDE really gets in the way(*).

You should consider learning another language. C++ is probably one of the most complicated languages out there (especially in terms of syntax), and is fairly low-level. A high-level language with a garbage collector makes your life a lot easier. My personal favourite is scheme, a very simple language with a number of implementations. Java and C# are both very good object-oriented languages. Python is probably the most popular recreational programming language right now. I personally love Javascript, but I don't think it is very good for a beginner, because it is very free-wheeling, and consequently makes it very easy to write buggy code.

(*) The exception is GUI programming, which can be a real pain to do with an IDE. However, some of the Java GUI libraries are pretty easy to use without an IDE.
Gummy
Profile Blog Joined October 2010
United States2180 Posts
Last Edited: 2012-02-03 23:56:01
February 03 2012 23:50 GMT
#15
Yo, micro. PM me what it is you want to do and I'll talk you through some of the best choices for you to start from and hook you up with the relevant tutorials and resources. Specific problems are typically more efficiently attacked with specific solutions. Even simple projects are often worth investing an hour or two learning a new language for simply to leverage features that might save countless hours in the future. Don't have time to drop a comprehensive knowledge bomb here, but in response to

What are the pros/cons of continuing with C++? If I liked C++, what is another language that I will probably also like that will be more useful? Ultimately, I know the most important question I need to answer myself before anyone can truly help me is what I plan to do with the language I choose to code in. Aside from my earlier answer of (enjoyed programming; make useful programs; possibly make games) I really don't know.

C++ is a compiled object-oriented language. If you care about performance and don't want to code in assembly or vanilla C, C++ is the go-to solution. If you don't care about performance, i.e. you're okay with a constant-bounded additional use of memory or CPU, then other solutions are easier and more effective. Java, for example, is the language of choice for many large software companies, since there are many reliable open source tools for developing and testing for Java. Also, documentation in Java via Javadocs is uberstandard, whereas documenting C++ is a bit more of a hassle since different projects use different systems, many of which are not automatic and thus might fall out of sync with the latest version of code.

From your perspective, none of this really matters. Learning C++ or learning Java first is pretty much irrelevant since they are very similar in terms of both their core features and their syntax. I've ported entire packages from one language to the other in a matter of minutes, with almost all of it being verbatim copypasta. (There are silly little things, like class declaration semicolons in C/C++ and Java requiring braces even for one-line commands, while C/C++ let you implicitly leave out these braces). You have to do a bit more work in C++ (writing your own Make files or configuring Automake, deciding whether functions are inline or not, having to deal at least a little bit with memory allocation/deallocation), and there are still some silly issues based on how C++ was built that make certain seemingly obvious tasks like circular dependencies require some simple but nonobvious hacks. On the other hand, Java tends to have more conventions in place and restricts your freedom a little bit more to force you to express yourself in pre-set, but universally understood, ways. This might also be good for you as a beginner since style and structure are the key things that make for a good program. (In C/C++ you might be tempted to use a shitload of macro preprocessor commands simply because you can and you will regret it later). Language and syntax is just an afterthought. In the end of the day, you should probably learn both languages, but the real question is whether you are willing to invest the time into understanding how computers work. If you care to learn about memory management, build dependencies, object (data and method) representation, then learn C++ first. If that stuff sounds boring and meaningless to you (which it is in all but the most CPU/Memory bottlenecked applications; the software used and developed in much of the IT industry is disk or network bottlenecked so this shit doesn't matter) then start with Java.
¯\_(ツ)_/¯ There are three kinds of people in the world: those who can count and those who can't.
nekoconeco
Profile Blog Joined May 2009
Australia359 Posts
February 03 2012 23:55 GMT
#16
On February 04 2012 07:19 micronesia wrote:
Thanks so far for weighing in... someone on IRC just recommended Javascript to me. When I asked what it does and doesn't allow me to do, he said everything and nothing... so a strong endorsement.


What he said is basically true I have learned to really appreciate the power of Javascript. However I wouldn't recommend learning programming from Javascript it is way to hard to learn correctly (since it is conceptually very different) and easily abused. Also a lot of the Javascript tutorial content online is of very dubious quality. In many ways it is the opposite of what you should learn as your first language.

Something like C# or Java would be a better choice. C# is great because a lot of the learning resources are good and you can get applications up and running quickly.
My Photoshop stream (requests welcome) --> http://www.teamliquid.net/forum/viewmessage.php?topic_id=304143
Gummy
Profile Blog Joined October 2010
United States2180 Posts
February 04 2012 00:01 GMT
#17
On February 04 2012 08:55 nekoconeco wrote:
Show nested quote +
On February 04 2012 07:19 micronesia wrote:
Thanks so far for weighing in... someone on IRC just recommended Javascript to me. When I asked what it does and doesn't allow me to do, he said everything and nothing... so a strong endorsement.


What he said is basically true I have learned to really appreciate the power of Javascript. However I wouldn't recommend learning programming from Javascript it is way to hard to learn correctly (since it is conceptually very different) and easily abused. Also a lot of the Javascript tutorial content online is of very dubious quality. In many ways it is the opposite of what you should learn as your first language.

Something like C# or Java would be a better choice. C# is great because a lot of the learning resources are good and you can get applications up and running quickly.

Agreed. Javascript is like the hybridest of hybrid languages.
It is extremely multiparadigm and there are so many different frameworks that have been built on top of it.
Problem is.... nobody really uses vanilla JS anymore. People use JQuery or MooTools or Prototype. (The last of which supports some emulated classical inheritance which is super nice)
While JS is turing complete in terms of its expressiveness, the libraries available to it are limited because it exists in a web browser (Though certain server-sided technologies use Javascript interpreters as well, though I'm not sure why, since it's syntactically almost identical to Java except for typing...)
¯\_(ツ)_/¯ There are three kinds of people in the world: those who can count and those who can't.
Majromax
Profile Joined May 2011
Canada14 Posts
Last Edited: 2012-02-04 00:25:50
February 04 2012 00:21 GMT
#18
I am not a programmer by trade, but I programmed a large (~15k lines of code) mathematical model for my (Maths) thesis in C++. This comes off an undergraduate CS degree.

So let me be a little controversial and recommend that you not start with a compiled language, especially C++. Compiled languages (take your pick!) are awesome things, but they're like the power tools of the programming world -- big, fast, and dangerous. Doing something right in a compiled language usually means having a big project, and that means doing design in advance and knowing what will work ahead of time.

As a novice, what you're missing is the "language" of programming -- what algorithms are common, what they do, what problems are easy to solve, and what problems are hard. All of that is computer science education, and none of that is programming.

Instead, I'd recommend you pick a simple, interpreted language (I'm partial to python, myself) and go through some introductory CS material. Pick some lightweight projects you want to do, then see if the language you're using will make those things easier.

(Inside baseball: one of the reasons I really don't recommend C++ as a starter language is because of its lack of data structures built-in. You have to use the STL or Boost libraries, which are an extra layer of complexity. Since some really common projects boil down to "read in some text, parse it, do something with it, and write out the result", not having strings or hash tables/associative arrays as a built-in data structure just makes life difficult.)

Oh, one addendum: if you're okay with it, I highly recommend a Linux-type environment for programming. The entire Unix-style toolchain is pretty much built to make programming easier, whereas Wndows-based programming tends to have a "walled garden" around an IDE (integrated development environment) program. Cygwin will install an entire unix-type toolchain on a windows system. But to really get the most use out of it, you have to already be comfortable with a command line.
dartoo
Profile Joined May 2010
India2889 Posts
Last Edited: 2012-02-04 00:38:05
February 04 2012 00:27 GMT
#19
I agree with people who say c#. It is a very easy language to pickup, and it's also a "serious language", with which you can see results fast.

Why c#(or java for that matter..) over c++ (for a beginner)The curve is a LOT easier, no garbage collection to worry about,dangling pointers, etc. It holds your hand a bit, and prevents you from falling down, so you can get the basics done a lot easier.
If you want to program games, you can do that with xna and c#, it is actually very easy to get started on wp7 programming with c#, c# also serves as the backed end for aspx pages and silverlight. c# also enforces oops styles on to you, whereas c++ it's possible to write c-style code which might lead to some confusion.
Once you learn c#, c++ is going to be a little bit easier, cause you know how to program in general, you could learn the advanced concepts in c++ a little quicker, and maybe it wont be as frustrating(it's very easy to shoot yourself in the foot with c++).

Think of c# as sc2, and c++ as brood war :p

Javascript isnt really a language, it's a script..so I think your better off learning a language instead of a script, they could get you into some bad habits/sloppy code etc. It's much better if you learn a proper language and then use scripts on top of it to make your life easy.


Edit: one more thing is, if your on windows,use visual studio for an ide,....as a beginner, it was a so easy to use vs and not worry about random things not working, all you had to do was type your program and press F5. Later while setting up my dev environment for android..I realized how easy vs had made things for me. I think it's better to have less things to worry about while learning something and then expanding on it.
tec27
Profile Blog Joined June 2004
United States3696 Posts
February 04 2012 00:46 GMT
#20
On February 04 2012 09:01 Gummy wrote:
Show nested quote +
On February 04 2012 08:55 nekoconeco wrote:
On February 04 2012 07:19 micronesia wrote:
Thanks so far for weighing in... someone on IRC just recommended Javascript to me. When I asked what it does and doesn't allow me to do, he said everything and nothing... so a strong endorsement.


What he said is basically true I have learned to really appreciate the power of Javascript. However I wouldn't recommend learning programming from Javascript it is way to hard to learn correctly (since it is conceptually very different) and easily abused. Also a lot of the Javascript tutorial content online is of very dubious quality. In many ways it is the opposite of what you should learn as your first language.

Something like C# or Java would be a better choice. C# is great because a lot of the learning resources are good and you can get applications up and running quickly.

Agreed. Javascript is like the hybridest of hybrid languages.
It is extremely multiparadigm and there are so many different frameworks that have been built on top of it.
Problem is.... nobody really uses vanilla JS anymore. People use JQuery or MooTools or Prototype. (The last of which supports some emulated classical inheritance which is super nice)
While JS is turing complete in terms of its expressiveness, the libraries available to it are limited because it exists in a web browser (Though certain server-sided technologies use Javascript interpreters as well, though I'm not sure why, since it's syntactically almost identical to Java except for typing...)

You don't understand JS


I still highly recommend JavaScript, micronesia. While some of the things people have said are true (you can definitely shoot yourself in the foot if you start to abuse the languages features and use things in the wrong way), the flexibility that JS gives you makes it extremely powerful. If it was your first language ever, I don't think it'd be a good fit, but you clearly have some background in programming that I think is enough. On top of that, JS gives you some amazing capabilities. In a web browser, you can make amazing interfaces and GUI applications with it. On a server, you can do all kinds of cool responsive networking and interactive applications.

On top of all of that, the Node.JS community (which is what you'd use to run JS outside of a web browser) is really awesome, and there are modules for all kinds of things (AND they're really easy to install!). I've used a ton of different languages over the years and I've never been so happy with one as I am with JavaScript.

Some links:
- Douglas Crockford is an excellent resource on JS things (although he can be a bit of an ass): http://javascript.crockford.com/
- Node.JS is the best: http://nodejs.org/
- The NPM repository lets you search for packages easily: http://search.npmjs.org/
- JSHint is super useful for checking the quality of your code: http://www.jshint.com/
Can you jam with the console cowboys in cyberspace?
Vilonis
Profile Joined October 2010
United States130 Posts
Last Edited: 2012-02-04 06:17:50
February 04 2012 06:10 GMT
#21
Learn Python.

Writhing python is fun

It is simple, high level (powerful), does tons of stuff, google loves it (and has an awesome class on it that you should watch the videos of, it is only 2-3 hours + exercises), has an awesome community, and is fun

Because you don't need to do anything for a profession, why would you write c++?

Further more, do what Google does with python. Each time you find yourself doing something redundant/boring, write a python script to do it instead. Ex. I wrote a script that pulled data (album, artist, song name, etc) from a music files title moved it into tags, then renamed the file to just be the song name. Then I ran it on 1000 songs. Felt pretty cool.

Oh, and it is lightweight. By that I mean, the time between starting a new script and running it is tiny. You don't need an IDE, you don't compile it, there is no boiler plate code to execute a main function to get the program off the ground.. It is pretty liberating.

Oh, and it's cross platform, including the huge standard library.

Lastly, Majromax recommends it earlier in this thread, so everything he says is more reason to choose python.

Lastly, really this time. Python has an awesome, super helpful and friendly (like TL Friendly) community and lots of resources. Including python's great official documentation and documentation built into the language itself.

As you might be able to guess, I Highly recommend python.


Edit: There are actually even more good things.

Python's most popular web frame work, Django, described as a web frame work for perfectionists with deadlines, is extremely powerful. You can have a simple website up and running, including all database interactions, HTTP crap, etc, in half and hour. Really, there is a tutorial to teach you how, and I have personally done it.

So if you are interested in web programming, Django and Python might be the perfect pair for you.

Want to do some GUI programming? Want it to be cross platform and use the OS's default widgets (so that windows on Windows look like Window's windows, and Linux windows look like Linux windows, etc)? wxPython. Bindings to wxWidgets from c++.

Want to do some low level 3D graphics? pyOpenGL.

Want to do some higher level 2D games? pySFML. Though I admit, the current bindings are, lacking, the bindings for the upcoming SFML 2.0 look much more promising.

Wish python was run-able everywhere java was? Jython, a python interpreter written in java, runs python code anywhere java runs.

Basically, you can do pretty much anything with python.
"Such is the vastness of his genius that he can outwit even himself!" - Iskaral Pust, High Priest of High House Shadow
DrGingertron
Profile Joined December 2010
United States11 Posts
February 04 2012 06:23 GMT
#22
I am doing exactly what the op decided to do. I was in college for 2 years studying to become a programmer. I have a very specific way of learning and I felt like college was holding me back. So i decided this past semester to drop out and sort of figure things out. For fun I go to thenewboston.com and learn different kinds of programming languages to see which I perfer more.
Ive been meeting with local programmers and network admins to see what goes on in their worlds. Its been a lot of fun so far, but am quickly going broke(had no job in college and cant find one now). So as of now, I am getting certified in a few IT areas to become... you guessed it an IT pro. Good luck to you and finding what language u want to learn!
Live today die tomorrow
churbro
Profile Blog Joined January 2012
New Zealand55 Posts
Last Edited: 2012-02-04 06:58:34
February 04 2012 06:57 GMT
#23
Start with Java or C#

Both are the standard OO programming languages these days. Once you know either you pretty much know JavaScript (and other languages, vb.net, python, and even c++) and programming in general will become far more simple.

P.S Don't start with JavaScript, that would be a terrible idea.
TossFloss *
Profile Blog Joined February 2010
Canada606 Posts
February 04 2012 07:25 GMT
#24
First figure out what you want to create then figure out which languages are best suited for the job.
TL Android App Open Source http://www.teamliquid.net/forum/viewmessage.php?topic_id=265090
teamamerica
Profile Blog Joined July 2010
United States958 Posts
February 04 2012 08:07 GMT
#25
Had some long post but never mind - comes down to what TossFloss says. Why are you trying to learn programming? Pick a language that let's you do some project you're interested in, it's way more fun then just picking up a textbook and learning something.

Java has a really really REALLY easy to use API and lots of tutorials and let's you get into Android.
C# also has ease of use like Java, I've never used, but let's you do asp.net (web), games (XNA), and windows programming.
Python - good for web? Idk what standalone apps you make in python and just doing random textbook assignments is pretty boring imo.
Objective C- let's you do iPhone stuff? Always cool to make apps. Need a mac though, as was previously mentioned.
C++ - honestly idk what you'd do in that (not as in there's nothing, I just don't know)
Web stuff - let's you get deliverables out pretty fast, maybe try learning ruby on rails? Seems pretty fun.
RIP GOMTV. RIP PROLEAGUE.
heishe
Profile Blog Joined June 2009
Germany2284 Posts
February 04 2012 08:19 GMT
#26
If you want to start with C++, you're going to need one of the two mainstream compilers (the MSVC compiler or GCC) and an IDE to use it with.

The MSVC compiler is the one that ships with the Visual Studio software, and GCC is actually a compiler collection for all kinds of languages, and it usually ships with all major and even minor distributions of linux.

Then you need an IDE to use it with. There are tons of IDEs out there, so for ease of use I suggest you simply take Visual Studio (the express version is free and, for C++, can be found here.

You just install it, start it, create a new empty C++ project and you're good to go.

In terms of resources to learn from: I suggest you simply google "C++ tutorial" and get to know the basics.

Most online-tutorials teach total and utter crap when it comes to style and details for C++, but that doesn't matter for you now. What matters is that you get to know and use the languages in its most basic form. You can learn about actual good programming later on.

You could also look for some beginners books, but I can't give any advice on that.
If you value your soul, never look into the eye of a horse. Your soul will forever be lost in the void of the horse.
Vilonis
Profile Joined October 2010
United States130 Posts
February 04 2012 16:20 GMT
#27
On February 04 2012 17:07 teamamerica wrote:
Had some long post but never mind - comes down to what TossFloss says. Why are you trying to learn programming? Pick a language that let's you do some project you're interested in, it's way more fun then just picking up a textbook and learning something.

Java has a really really REALLY easy to use API and lots of tutorials and let's you get into Android.
C# also has ease of use like Java, I've never used, but let's you do asp.net (web), games (XNA), and windows programming.
Python - good for web? Idk what standalone apps you make in python and just doing random textbook assignments is pretty boring imo.
Objective C- let's you do iPhone stuff? Always cool to make apps. Need a mac though, as was previously mentioned.
C++ - honestly idk what you'd do in that (not as in there's nothing, I just don't know)
Web stuff - let's you get deliverables out pretty fast, maybe try learning ruby on rails? Seems pretty fun.


For an actual website...
https://www.djangoproject.com/

As far as apps, I don't know if you saw the thread but someone made a web app that ranked pro gamers by attractiveness, the same way girls were ranked in The Social Network (and the same way players are ranked in SCII ladder).

Python is the third most popular language on github, and there are 238 projects that use django hosted. It is a pretty popular way to do web programming.
"Such is the vastness of his genius that he can outwit even himself!" - Iskaral Pust, High Priest of High House Shadow
billy5000
Profile Blog Joined December 2010
United States865 Posts
February 04 2012 21:32 GMT
#28
First year of cs major here. We're learning java and it seems like a good foundation. I've tried to learn python before, but to me it was so simple that it just felt strange, especially the structure of the program. The best part of it is that we're using probably one of the better books than most colleges use: http://introcs.cs.princeton.edu/java/home/. I was in your boat a year back, and I pretty much got similar results: learn either python, java, or c#. Personally, I wouldn't go with python since java and (I'm guessing) c# are fairly easy to begin with.
Tiger got to hunt, bird got to fly; Man got to sit and wonder, 'Why, why, why?' Tiger got to sleep, bird got to land; Man got to tell himself he understand. Vonnegut
emperorchampion
Profile Blog Joined December 2008
Canada9496 Posts
February 04 2012 22:13 GMT
#29
Fortran all the things!
TRUEESPORTS || your days as a respected member of team liquid are over
luxx
Profile Blog Joined July 2010
United States140 Posts
February 04 2012 23:58 GMT
#30
My recommendation is to just get on a project and start building. As long as it is object oriented and you give yourself enough time to learn, you will be able to build some cool stuff, get an awesome job, or at least find out where you want to go next. I personally prefer ruby for its elegant syntax, active community, and a little thing called rails. Don’t get too hung up on the language choices - if you are comfortable using C++ as a starting point, go for it. The fundamentals you learn will be applicable to other languages.

Every application is made up of simple primitives that can be reasoned about, so it is very important to start with something simple enough to be successful at and to build confidence on. For some people that means creating a server of some sort, or a library to read data out of a file, or writing a method to print 1,000 numbers from the Fibonacci sequence, or simply assigning a variable and printing the result. It does not really matter how trivial it may seem, or how worthless you may feel compared to others, just drop down to the smallest unit of code that you can fully understand and control. Start there and inch forward, understanding what is occurring at each step of the way.

It is easy to get stuck early on, so building a network of people who can support you is very important. You can find people on forums, irc, and other places like github, just do as much as you can to get in contact with smart people. Joining an existing project or volunteering is a great way to meet people. My project’s and many others put a big focus on learning and connecting people with mentors. Code reviews are also very helpful.

I would start online once you know what language you are working with. There are a lot of getting started guides, tutorials, screen casts, and the overall quality of online documentation is constantly improving. It is an awesome time to be a developer so have fun with it
Lead Developer Z33K.com
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
Last Edited: 2012-02-05 00:14:20
February 05 2012 00:13 GMT
#31
On February 04 2012 15:10 Vilonis wrote:
Learn Python.

Oh man I cannot stress this enough! I program in C and C++ because I'm in school to become a professional programmer for a company like MS, but as hobby programming Python is by far the most fun. The syntax is extremely clean and readable, and there's a lot of documentation and support out there. There's even PyGame, I've spent many hours writing games in PyGame back in highschool!

If you want to be a professional software developer for real-time applications, ground yourself in C, then switch to C++. That's the most solid way according to professionals I talk to. If you want to program more as a hobby and perhaps someday as a profession, Python is perfect.

So you need to let us know what you want to actually program!
ShadowWolf
Profile Joined March 2010
United States197 Posts
February 05 2012 02:48 GMT
#32
At the end of the day, if you're going to be a professional it's almost irrelevant on which language you learn. Being a professional is about having the skills and capability to write maintainable, relevant, and effective code in a reasonable amount of time and adapt to your environment. Starting off learning language X vs. Y will make certain things easier to pick up on, but, in my experience and the people I've seen, there's almost no correlation between the top developers and the bad ones. Not to mention that languages and platforms move, so you'll probably need to have the skills necessary to learn at least 1 more language in your lifetime (probably more!).

Good programmers understand the environment and problem they're solving and solve it in a way that's both effective and maintainable. I've seen "whiz-kids" at work produce some garbage code that does awesome things. Subsequently I've spent all weekend refactoring and rewriting it because it was, again, garbage.

In the end, focus less on the language you learn and more on learning how to be a good programmer.
micronesia
Profile Blog Joined July 2006
United States24645 Posts
February 05 2012 05:03 GMT
#33
Well to give an update a lot of you (as well as people I spoke to online) were pushing python, and given my reputation from broodwar as the king of python, I went with it.

I've gone through a little over half of this for a warmup: http://learnpythonthehardway.org/book/

I'll attach a little program I wrote before dinner for fun:

def factorial(base):
if base > 1:
return base*factorial(base-1)
else:
return 1

xmin = 1
xmax = 10
xvar = []
f_of_x = []

xvar=range(xmin,xmax+1)

print "\nf(x)=x!\n\n",\
"The Domain is:", xvar, "\n"

f_of_x = [factorial(x) for x in xvar]

print "The Range is:", f_of_x, "\n"
raw_input("Press Enter to Exit")

There were a couple of parts that I spent 2-3 lines on. A couple of people on IRC gave me some suggestions and I condensed it to take advantage of some of the advantages of python over C++, apparently.
ModeratorThere are animal crackers for people and there are people crackers for animals.
Normal
Please log in or register to reply.
Live Events Refresh
BSL: GosuLeague
19:15
Quarter Finals
Hejek vs Herbmon
Semih vs Kyrie
cavapoo vs TousaN
ZZZero.O115
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
UpATreeSC 156
PiGStarcraft120
JuggernautJason76
CosmosSc2 37
EnDerr 31
StarCraft: Brood War
Britney 17131
Sea 1246
Artosis 605
ZZZero.O 115
Dota 2
PGG 169
League of Legends
tarik_tv10234
Counter-Strike
fl0m4907
Super Smash Bros
PPMD99
Heroes of the Storm
Grubby3212
Khaldor102
Other Games
summit1g7152
shahzam975
ViBE122
Maynarde76
Organizations
Dota 2
PGL Dota 2 - Main Stream4473
Other Games
gamesdonequick190
BasetradeTV165
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 19 non-featured ]
StarCraft 2
• RyuSc2 55
• davetesta40
• Berry_CruncH28
• LaughNgamezSOOP
• sooper7s
• AfreecaTV YouTube
• intothetv
• Migwel
• Kozan
• IndyKCrew
StarCraft: Brood War
• Diggity2
• HerbMon 2
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• masondota22191
League of Legends
• Shiphtur774
Other Games
• imaqtpie935
• Scarra784
Upcoming Events
PiGosaur Monday
1h 1m
PiGStarcraft120
GSL Code S
10h 31m
Rogue vs GuMiho
Maru vs Solar
Online Event
1d 1h
Replay Cast
1d 3h
GSL Code S
1d 10h
herO vs Zoun
Classic vs Bunny
The PondCast
1d 11h
Replay Cast
2 days
WardiTV Invitational
2 days
OSC
2 days
Korean StarCraft League
3 days
[ Show More ]
SOOP
3 days
CranKy Ducklings
3 days
WardiTV Invitational
3 days
Cheesadelphia
3 days
CSO Cup
3 days
GSL Code S
4 days
Sparkling Tuna Cup
4 days
Replay Cast
5 days
Wardi Open
5 days
Replay Cast
6 days
Replay Cast
6 days
RSL Revival
6 days
Cure vs Percival
ByuN vs Spirit
Liquipedia Results

Completed

CSL Season 17: Qualifier 2
BGE Stara Zagora 2025
Heroes 10 EU

Ongoing

JPL Season 2
BSL 2v2 Season 3
BSL Season 20
KCM Race Survival 2025 Season 2
NPSL S3
Rose Open S1
CSL 17: 2025 SUMMER
2025 GSL S2
BLAST.tv Austin Major 2025
ESL Impact League Season 7
IEM Dallas 2025
PGL Astana 2025
Asian Champions League '25
BLAST Rivals Spring 2025
MESA Nomadic Masters
CCT Season 2 Global Finals
IEM Melbourne 2025
YaLLa Compass Qatar 2025
PGL Bucharest 2025
BLAST Open Spring 2025

Upcoming

Copa Latinoamericana 4
CSLPRO Last Chance 2025
CSLPRO Chat StarLAN 3
K-Championship
SEL Season 2 Championship
Esports World Cup 2025
HSC XXVII
Championship of Russia 2025
Murky Cup #2
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.