• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 06:09
CEST 12:09
KST 19:09
  • 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
Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12TL.net Map Contest #22 - Voting & Ladder Map Selection7Code S Season 2 (2026) - RO8 Preview8[ASL21] Finals Preview: Two Legacies21
Community News
[TLMC] Summer 2026 Ladder Map Rotation05.0.16 patch for SC2 goes live (8 worker start)30ZeroSpace at Steam NextFest - Last free demo23Weekly Cups (June 8-14): Clem and Solar double, PTR tested0RSL: S6 Finals played at BlizzCon 202611
StarCraft 2
General
Daily SC2 Player Grid - feedback wanted 5.0.16 patch for SC2 goes live (8 worker start) SC2 Planner - The StarCraft II Build Planner [TLMC] Summer 2026 Ladder Map Rotation StarCraft II 5.0.16 PTR Patch Notes may 26th
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament GSL CK #4 20-21th June Douyu Cup 2026: $20,000 Legends Event (June 26-28) Master Swan Open (Global Bronze-Master 2) Crank Gathers Season 4: BW vs SC2 Team League
Strategy
[G] Having the right mentality to improve
Custom Maps
Work In Progress Melee Maps [D]RTS in all its shapes and glory <3
External Content
The PondCast: SC2 News & Results Mutation # 531 Experimental Artillery Mutation # 530 One For All Mutation # 529 Opportunities Unleashed
Brood War
General
Fact based Zerg Upgrade Tier List BGH Auto Balance -> http://bghmmr.eu/ STARCRAFT MOVIE - Last Night at the Command center BW General Discussion Battle cruiser feet vs Carrier fleet
Tourneys
[Megathread] Daily Proleagues CSLAN 4 is Coming! Small VOD Thread 2.0 The Casual Games of the Week Thread
Strategy
Why doesn't anyone use restoration? Simple Questions, Simple Answers Relatively freeroll strategies Creating a full chart of Zerg builds
Other Games
General Games
Stormgate/Frost Giant Megathread ZeroSpace at Steam NextFest - Last free demo Beyond All Reason Nintendo Switch Thread Path of Exile
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
Vanilla Mini Mafia
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread [H]Internet/Gaming Cafe Tips and Tricks The Games Industry And ATVI
Fan Clubs
The HerO Fan Club! The herO Fan Club!
Media & Entertainment
Movie Discussion! [Req][Books] Good Fantasy/SciFi books [TV/BOOK] *SPOILERS* Game of Thrones Discussion
Sports
2024 - 2026 Football Thread McBoner: A hockey love story TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion Cricket [SPORT]
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Facing Challenges in Mobile App Development
TL Community
The Automated Ban List
Blogs
How To Predict Tilt in Espor…
TrAiDoS
An Exploration of th…
waywardstrategy
I'm an arrogant trash talke…
FlaShFTW
Gauntlet SC2: A Retrospectiv…
Ctone23
Why RTS gamers make better f…
gosubay
Customize Sidebar...

Website Feedback

Closed Threads



Active: 12055 users

Programming Newb: from 0 to ? in a Year

Blogs > DickMcFanny
Post a Reply
Normal
DickMcFanny
Profile Blog Joined September 2015
Ireland1076 Posts
Last Edited: 2016-04-27 19:59:45
April 27 2016 19:48 GMT
#1
Hi TL,

I have been toying with the idea of learning programming, as I think it contributes to computer literacy and adds to ones understanding of the underlying processes that make software work.

At 28, I'm probably too old to have professional aspirations, but from what I've gathered, even as a hobbyist one can have some fun coding and after a couple of years, actually write small programs and scripts, which I found pretty cool.

As I work for a software company (not as a coder, but in enterprise support), I can use two hours of my day for self-development, and I think I can make a case for using that time on learning a language, but I'm struggling to decide which one I want.

On my CV it says I'm proficient in Javascript, so since I've been lying about that for years, I might as well start there.

Do you think Javascript is a good choice for a first language?
My goal is to, within a year, write or contribute to an application that passes the quality controls of the iOS store. Just something small, like a stop watch or a calculator, nothing that would necessarily make money or get any attention.

I read somewhere that iOS apps are made using a language called Swift 2, and somewhere else that Javascript is closest to that, is that true?

Also, if you could recommend decent, free learning resources for programmers, if you have links or general advice, or want to correct my post in any way, do let me know.

Thanks for your attention!

| (• ◡•)|╯ ╰(❍ᴥ❍ʋ)
beg
Profile Blog Joined May 2010
991 Posts
April 27 2016 20:04 GMT
#2
Well, don't overestimate the difficulty of programming. You mentioned your goal was to write something simple, like a stop watch or a calculator. Those are fine ideas, even as beginner projects, if you have an actual passion for programming.

The only question is...
Do you think you want to program, or do you actually want to program?
DickMcFanny
Profile Blog Joined September 2015
Ireland1076 Posts
April 27 2016 20:06 GMT
#3
On April 28 2016 05:04 beg wrote:
Well, don't overestimate the difficulty of programming. You mentioned your goal was to write something simple, like a stop watch or a calculator. Those are fine ideas, even as beginner projects, if you have an actual passion for programming.

The only question is...
Do you think you want to program, or do you actually want to program?


That's honestly for me to find out.

I don't know that I want to program, but I know that I want to learn how to program, if that makes sense.
| (• ◡•)|╯ ╰(❍ᴥ❍ʋ)
tofucake
Profile Blog Joined October 2009
Hyrule19221 Posts
April 27 2016 20:52 GMT
#4
On April 28 2016 04:48 DickMcFanny wrote:
At 28, I'm probably too old to have professional aspirations, but from what I've gathered, even as a hobbyist one can have some fun coding and after a couple of years, actually write small programs and scripts, which I found pretty cool.

that's not true. One of the coders I work with switched from business administration to programming because he liked it better, and he did that in his early 30's.

On April 28 2016 04:48 DickMcFanny wrote:
Do you think Javascript is a good choice for a first language?
My goal is to, within a year, write or contribute to an application that passes the quality controls of the iOS store. Just something small, like a stop watch or a calculator, nothing that would necessarily make money or get any attention.

I read somewhere that iOS apps are made using a language called Swift 2, and somewhere else that Javascript is closest to that, is that true?

Also, if you could recommend decent, free learning resources for programmers, if you have links or general advice, or want to correct my post in any way, do let me know.

Thanks for your attention!

No, I don't think JavaScript is a good first language. Most JS will require you to know HTML and CSS at least to get things rolling, unless you decide to work in Node which is a bit heavy for a first language, or React which will require at least some knowledge of HTML or XML anyway. JS is also a silly language designed by committee.

A much better place to start is either Python or C#.

Good resources are codeacademy and MSDN (for C#), and we even have a Big Programming Thread where you can ask for help from other knowledgeable TLers.
Liquipediaasante sana squash banana
DickMcFanny
Profile Blog Joined September 2015
Ireland1076 Posts
Last Edited: 2016-04-27 21:05:38
April 27 2016 21:05 GMT
#5
Thanks for the thorough reply!

I bookmarked a course called "Programming for Non-Programmers: iOS9 and Swift" on Lynda that I wanted to start with, but I'm in between Macs for another month or so.

So I might start with Python as per your recommendation, having a perfunctory glance at CodeAcademy, this seems the way to go.
| (• ◡•)|╯ ╰(❍ᴥ❍ʋ)
amazingxkcd
Profile Blog Joined September 2010
GRAND OLD AMERICA16375 Posts
April 27 2016 21:30 GMT
#6
imo, choice of language is moot; what is more important is understanding fundamentals and principles of programming - theory. Once you learn theory and concepts, languages become easy to pick up as you're just applying said theory to their given framework.
The world is burning and you rather be on this terrible website discussing video games and your shallow feelings
DickMcFanny
Profile Blog Joined September 2015
Ireland1076 Posts
Last Edited: 2016-04-27 21:33:00
April 27 2016 21:31 GMT
#7
There's programming theory?, he asked, making a fool of himself.
| (• ◡•)|╯ ╰(❍ᴥ❍ʋ)
Sennmeister
Profile Blog Joined April 2016
United Kingdom7 Posts
April 27 2016 21:55 GMT
#8
I would also recommend Python as a first language. The syntax is simpler than other languages, which might make it less cumbersome to start with.

Learn programming theory: how computers work, how they think (remembering they are stupid and always execute instructions one by one, at least initially), and a bit about algorithms.

Don't copy and paste code Always type it yourself.

Oh and books are good. Often, better than blog posts and tutorials.
flipstar
Profile Joined January 2011
226 Posts
Last Edited: 2016-04-27 22:14:18
April 27 2016 22:06 GMT
#9
On April 28 2016 06:55 Sennmeister wrote:
Don't copy and paste code Always type it yourself.
.


I just wanna quote this for truth. After I started just typing stuff out instead of copy\pasting stuff actually sticks.

I'm a novice, but I recommend C#. I haven't ventured into too many frameworks and stuff, but the different ones I've tried from ms (asp.net mvc, winforms, wpf) makes rapid development fairly easy, even as a beginner. I'm bad at both html & js, but mvc makes everything fairly easy as I can do most stuff in C# while dipping my toes in the cold water that is html and avoiding spending time on making\updating databases with entity framework.

edit:
Didn't really read op, but after I did ( ) I thought I'd mention Xamarin. It's supposed to make it easier to develop cross platform apps (ios, android), and it's c# afaik. It's also become free now after being bought by Microsoft.
FO-nTTaX
Profile Blog Joined January 2013
Johto4988 Posts
Last Edited: 2016-04-28 01:24:34
April 28 2016 01:21 GMT
#10
As a coder myself, i can just put more emphasis on what the people before me said. Python is a nice language to start, and the "do not copy, type it yourself" thing is very true.
Javascript is a very specialised language that heavily depends on other things you need to know (html, css, the concept of running asynchronous which is not quite obvious for a beginner), so i advise to not start with javascript.
I cant say much about swift as i never used it, but if you learn one language, it is quite easy to apply what you learned on another language for the most part (as long as your goal is not to learn one of the more exotic languages like smalltalk or prolog that have very specialised goals).
All the imperative languages (python, java, C, C++, swift, php) are at heart very similar, only the exact nomenclature and the amount of work the language does for you differentiates them. Once you know python it will be very easy to pick up java or C for example.

As python is a comparatively easy language, it makes a good language to start with, as it teaches the basics without being too hard on the coder.

As for learning a language, for me it always has been a good way to first define the goal i have, then look what i need in order to accomplish it, so for example if you want to go with the calculator example, learn how addition and substraction works in the language you choose.
Administrator@FO_nTTaX | FO-nTTaX.de | 0xff0000.dev | Senior Lead Liquipedia Developer
"Nimm es. Es ist nicht viel, aber es kommt von Herzen. Vergiss mich nicht!"
DickMcFanny
Profile Blog Joined September 2015
Ireland1076 Posts
April 28 2016 11:06 GMT
#11
I find these answers really helpful. My first Python course will start tomorrow, and I hope I can use the weekend to learn a fair bit about it.

I will keep in mind your advice about not copy and pasting, for sure.
| (• ◡•)|╯ ╰(❍ᴥ❍ʋ)
Gowerly
Profile Blog Joined July 2011
United Kingdom916 Posts
April 28 2016 13:42 GMT
#12
Coursera has some python courses on it, I believe.
Also, for starting small and working up to bigger challenges, there's www.codingame.com , where you can complete game-like challenges. They're more focused on solving the problem rather than learning to code, but usually there's something you don't know how to do in the code that you'll need to do to solve the problem, so there'll be some practical learning applications there, too.
I will reduce you to a series of numbers.
DickMcFanny
Profile Blog Joined September 2015
Ireland1076 Posts
April 28 2016 14:13 GMT
#13
Yeah, I've seen the ones on Coursera, but at first glance, the Lynda one seems a bit more professional.

I'll check out that game when I get home, there's a limit to what I can get away with at work, but thanks kindly.
| (• ◡•)|╯ ╰(❍ᴥ❍ʋ)
quirinus
Profile Blog Joined May 2007
Croatia2489 Posts
Last Edited: 2016-04-28 18:46:35
April 28 2016 15:24 GMT
#14
I'd suggest first learning html basics, then css. Make a simple page. After that you can do some basic javascript to add some simple on-click and other functionality to it. Once you do that, I'd suggest learning some php which is the basis of most pages around, it is used to generate content on the server side from various data that is not available directly to the user, then usually to display it as html content. It's pretty simple and has tons of useful functions. Its official documentation is just sick, and you can find answer to many questions on stackoverflow and similar pages.

Once you get to know php a bit, you might want to learn mysql(i), which is a database/language. It is used to store all the background information (in case of eg. TL it stores all the users, their settings, all threads, etc.). You then use php and sql trough mysqli to access that data, process it in any way you want and then display it.

Once you get used to that, you can learn jQuery which you can think of as an upgrade of javascript, but it's maybe even simpler than js. It's easy to use and pretty powerful, providing you with simple and short ways to do things that would take you tons of time and effort to do in JS. You can use it to easily fetch data live on the page instead of redirecting/reloading the page, and it provides compatibility across all most important browsers, so you don't have to manually fix incompatibilities.

In my opinion that will teach you some of the basics of the internet and programming. After that you'll easily adapt to some of the basics of python or some easy to use language like it, and new programmimg things will be introduced there. After you learn some python, maybe try C++ and C, which are a bit hader and more tedious at first.

But the most important thing is, always have something interesting you want to do (if its useful, thats a plus), like a web page or a simple program that calculates something. It will be infinitely more easy to learn while trying to make it work or do what you want, than just reading a book/tutorials. Just search the internet when you don't know how to do something and you'll learn step by step, and will never forget things since you actually find them interesting and useful, unlike reading tons of random boring stuff from the book that's unrelated to what you need and thus you'll forget them and waste your time.
All candles lit within him, and there was purity. | First auto-promoted BW LP editor.
Chef
Profile Blog Joined August 2005
10810 Posts
April 28 2016 18:32 GMT
#15
What do you want to do with it?

If you want to use it for something useful and you don't want headaches, pick a high level language, find an ORM that lets you manipulate a database, and have fun manipulating data that would normally take you ages to work with in an excel sheet.

Also learn how to do file manipulation, and how to make templates and stuff like that, cause that's probably one of the very few use cases that will actually come up for your work.

Don't pick a lower level language that doesn't do garbage collection for you when you are not going to do anything that puts any kind of strain on the hardware you're using. That's so utterly pointless.

I think Ruby has a great community, and it's very easy to find good answers on StackOverflow and whatever. Javascript is also fine, there's nothing wrong with it, but you have to commit to learning about function scope, and what the 'this' keyword means or you will be confused forever. Self in Ruby is a lot more intuitive. Ruby has a gajillion convenience functions in the standard library that will make your life easy, Javascript you will have to write them yourself or download lodash or something like that to help you.

Don't do web development for the hell of it. It sucks and is tedious and boring. Try to stick to writing your own programs from scratch at first, before you get into a framework or a major library that will hide all the bits from you and confuse you when things don't work.
LEGEND!! LEGEND!!
xtorn
Profile Blog Joined December 2013
4060 Posts
April 28 2016 23:59 GMT
#16
My 2 cents:

Don't focus on learning a specific language. Learn to THINK in terms of finding solutions to problems first.
This is an excellent course to start with, that takes you step by step and holds your hand teaching you how programming works. And you get to do something cool for start, so the incentive is there.

https://www.udacity.com/course/intro-to-computer-science--cs101

This uses python by the way (its a good language for beginners because it's intuitive). The language is less important than developing your thinking. Don't get married to whatever language, focus on problem solving instead, you'll learn a bunch of languages later by yourself just for the fun of it.

Life - forever the Legend in my heart
DickMcFanny
Profile Blog Joined September 2015
Ireland1076 Posts
April 29 2016 18:26 GMT
#17
Oh I think you're really on to something, this could absolutely be the right approach.

I'm starting that course tonight, and the dedicated Python course on Monday, really excited to get crackin'.

Thanks for the advice y'all, I'll come back if I have any more concrete questions.
| (• ◡•)|╯ ╰(❍ᴥ❍ʋ)
LaLuSh
Profile Blog Joined April 2003
Sweden2358 Posts
Last Edited: 2016-04-29 20:31:55
April 29 2016 20:25 GMT
#18
I started programming 1½ years ago and I'm your age.

Started with python on codeacademy for the bare basics.

After that I went on to coursera and did interactive programming in python, where you learn by programming small games and stuff like stopwatches (yes, literally your example...).

For my education I needed to learn R (for statistics and data analysis). I now code extensively in R and it's currently my main language. Picking up a new language was smooth after you get the hang of one language.

My goal is to also pick up some javascript and d3js, and then eventually hadoop and spark/mapreduce.

I still have a long long way to go. I wish I got into it earlier, but now is as good a time as any.
feardragon
Profile Blog Joined October 2010
United States973 Posts
April 29 2016 23:29 GMT
#19
Good luck! Python is a great starting language. Biggest piece of advice I can give is don't be afraid to go off the beaten path from your tutorials if you get curious about how something works. That's the way you'll learn the most.
Ok Starcraft 2 Commentator
quirinus
Profile Blog Joined May 2007
Croatia2489 Posts
May 02 2016 10:17 GMT
#20
On April 29 2016 08:59 xtorn wrote:
My 2 cents:

Don't focus on learning a specific language. Learn to THINK in terms of finding solutions to problems first.
This is an excellent course to start with, that takes you step by step and holds your hand teaching you how programming works. And you get to do something cool for start, so the incentive is there.

https://www.udacity.com/course/intro-to-computer-science--cs101

This uses python by the way (its a good language for beginners because it's intuitive). The language is less important than developing your thinking. Don't get married to whatever language, focus on problem solving instead, you'll learn a bunch of languages later by yourself just for the fun of it.



yeah learning to think, and think in the constructs that all programming languages use is the most important. once you learn that, you already know most of every language, since they are all pretty similar (there's some exceptions)
All candles lit within him, and there was purity. | First auto-promoted BW LP editor.
DickMcFanny
Profile Blog Joined September 2015
Ireland1076 Posts
May 03 2016 18:03 GMT
#21
On April 29 2016 08:59 xtorn wrote:
My 2 cents:

Don't focus on learning a specific language. Learn to THINK in terms of finding solutions to problems first.
This is an excellent course to start with, that takes you step by step and holds your hand teaching you how programming works. And you get to do something cool for start, so the incentive is there.

https://www.udacity.com/course/intro-to-computer-science--cs101

This uses python by the way (its a good language for beginners because it's intuitive). The language is less important than developing your thinking. Don't get married to whatever language, focus on problem solving instead, you'll learn a bunch of languages later by yourself just for the fun of it.



Hi, just a quick update, I haven't had enough time at work to make proper inroads, but I did the first 6 or so hours of this course and it's really fun! Thanks so much!
| (• ◡•)|╯ ╰(❍ᴥ❍ʋ)
Normal
Please log in or register to reply.
Live Events Refresh
Sparkling Tuna Cup
10:00
Weekly #136
CranKy Ducklings24
CranKy Ducklings SOOP4
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
StateSC2 217
LamboSC2 148
ProTech141
SHIN 72
ByuN 66
StarCraft: Brood War
Britney 32994
Calm 3579
Hyuk 737
Jaedong 684
firebathero 424
Mini 421
Zeus 159
EffOrt 112
Soma 85
NaDa 60
[ Show more ]
Hyun 57
hero 51
PianO 44
Liquid`Ret 43
ggaemo 41
Free 36
Hm[arnc] 36
Sharp 33
Rush 31
ToSsGirL 24
Noble 23
sorry 21
Movie 21
Sacsri 7
ajuk12(nOOB) 6
Dota 2
Gorgc6253
Fuzer 122
XcaliburYe66
syndereN59
League of Legends
JimRising 453
Reynor68
Counter-Strike
shoxiejesuss1404
olofmeister1105
kennyS631
x6flipin174
markeloff46
Other Games
Liquid`RaSZi1087
Hui .193
RuFF_SC223
Trikslyr19
Organizations
Dota 2
PGL Dota 2 - Secondary Stream7479
PGL Dota 2 - Main Stream2618
Other Games
gamesdonequick535
StarCraft: Brood War
UltimateBattle 107
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• Berry_CruncH246
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• iopq 3
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Jankos2151
• Stunt792
Upcoming Events
The PondCast
23h 51m
Douyu Cup 2020
1d 18h
Oliveira vs Trap
Jieshi vs XY
soO vs FanTaSy
TY vs Coffee
OSC
2 days
Douyu Cup 2020
2 days
Neeb vs Impact
MacSed vs Cyan
Scarlett vs Kelazhur
INnoVation vs Dear
Douyu Cup 2020
3 days
Maestros of the Game
4 days
herO vs Classic
Maru vs Serral
BSL22 NKC (BSL vs China)
4 days
Douyu Cup 2020
4 days
BSL22 NKC (BSL vs China)
5 days
Online Event
5 days
[ Show More ]
RSL Revival
5 days
RSL Revival
5 days
WardiTV Weekly
6 days
Liquipedia Results

Completed

Proleague 2026-06-19
WardiTV Spring 2026
Heroes Pulsing #2

Ongoing

IPSL Spring 2026
Acropolis #4
CSCL: Masked Kings S4
YSL S3
BSL 22 Non-Korean Championship
CSL Season 21: Qualifier 1
SCTL 2026 Spring
Maestros of the Game 2
Murky Cup 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026

Upcoming

CSL Season 21: Qualifier 2
CSL 2026 Summer (S21)
CSLAN 4
Blizzard Classic Cup 2026
Kung Fu Cup 2026 Grand Finals
RSL Revival: Season 6
CranK Gathers Season 4: BW vs SC2 Team League
HSC XXIX
Douyu Cup 2026
BCC 2026
Light Tournament 2026
Eternal Conflict S2 Finale
Eternal Conflict S2 E1
Heroes Pulsing #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
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 © 2026 TLnet. All Rights Reserved.