Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Where to start learning?

Initiate Mage
Joined
Nov 2, 2016
Messages
1
Reaction score
0
Hello,
All my life I've been into games, and recently got into PC gaming and built my own PC. But i was to extend my knowledge into programming and coding.
I want to learn the basics but its just so hard to know where to start.
Thank you!
 
git bisect -m
Loyal Member
Joined
Sep 2, 2011
Messages
2,171
Reaction score
916
Hi!

We have some bullshits courses like CodeAcademy and Udacity. (CodeAcademy is free and Udacity it's nano-degree's (super duper shenanigans))

I recommend you to learn from the basics, start with C. It's boring, massive and a poop. But it's the basics.

After that go to PHP (some web development in today's is good)... Take a shot about Cloud Computing (Microsoft Azure, Virtual Machines, etc.) About Design Patterns, Digital Security... and meeh, so many things.

Learn also Java, NodeJS, JavaScript, CSS.. Oh gosh, it's so many things.

Good leaaarning :D
 
Watching from above
Legend
Joined
Apr 9, 2004
Messages
3,828
Reaction score
752
Can't recommend something without knowing what you're aiming at. I think it's much better to picture something that you want to create and then pick the tools for it. What saamus is saying is that whatever you want to create, be it a house, origami or cupcakes you should definitely first learn the hammer and after that, scissors and definitely learn about modern art and ancient history. Other than that sure it's alright advice although the languages he first recommended are the ones I personally find the least useful of all the languages in the world. Oh, and if something is boring you shouldn't start with it unless it's a tool that you absolutely need where no other tool can be applied.
 

Ben

Developer - JS
Developer
Joined
Jul 6, 2013
Messages
1,224
Reaction score
506
Honestly I wouldn't start with C either as first language.

Most likely just like atleast some people, I started with java, its easy to pick up and there are lots of examples and tutorials about Java going all the way from basic command line programs to fully multithreaded applications.

After Java I dug deeper into C#, it's pretty easy to pick up too and there are lots of things that you can do with the .Net framework.
One thing to be said: C# documentation is pretty good ;-).

Ater that you can start going into web-development languages if you feel like that, start off with HTML/CSS and then go towards Javascript and PHP.

Like Negata said, we can't really give you a best advise where to start because if you want to do Web-development, why should you bother learning Java and C#, then just go straight to Html/Css/php/javascript and those frameworks around it.

But if you want to write actual programs like your own Calculator, than your good off starting with Java and C# from my experience.
 
git bisect -m
Loyal Member
Joined
Sep 2, 2011
Messages
2,171
Reaction score
916
Agreeing with @Ben & @Negata, as i said "I recommend you to learn from the basics, start with C. It's boring, massive and a poop. But it's the basics.", C is the basics, you don't actually need start with it. But you will learn in the best way how Programming Logic works and also, create your own functions, like cosine functions, sqrt functions..

Languages like Java, already have most of things done for you, you actually only need import. Good for who don't have time to learn or don't want to bore yourself... But programming isn't this. Sometime you will need to do something that you doesn't want to do/learn.

Languages of those days, have everything, you actually doesn't learn how the engine works behind, how the logics works. That's why C it's fundamental. Java is made in C, actually. PHP is made in C, actually.

Again, C it's boring, hard, and massive. But fundamental if you want to have a good education.

But Negata is a legend and @Ben a moderator. Who am i to say they are wrong, xD
 

Ben

Developer - JS
Developer
Joined
Jul 6, 2013
Messages
1,224
Reaction score
506
Agreeing with @Ben & @Negata, as i said "I recommend you to learn from the basics, start with C. It's boring, massive and a poop. But it's the basics.", C is the basics, you don't actually need start with it. But you will learn in the best way how Programming Logic works and also, create your own functions, like cosine functions, sqrt functions..

Languages like Java, already have most of things done for you, you actually only need import. Good for who don't have time to learn or don't want to bore yourself... But programming isn't this. Sometime you will need to do something that you doesn't want to do/learn.

Languages of those days, have everything, you actually doesn't learn how the engine works behind, how the logics works. That's why C it's fundamental. Java is made in C, actually. PHP is made in C, actually.

Again, C it's boring, hard, and massive. But fundamental if you want to have a good education.

But @Negata is a legend and @Ben a moderator. Who am i to say they are wrong, xD

Feedback has nothing to do with title's either being a legend or a moderator has no kind of influence about who would be right or wrong.
When your starting with programming, not everyone wants to start with the real stuff like including libs etc.. if they just want to see some stuff getting coded first and after learn the whole back-bone of coding, than in my opinion theres nothing wrong with that.

I'm doing C++ courses too currently where i'm looking at the includes of header files, header guards etc.. it's not the most funny things i've studied though.
 
git bisect -m
Loyal Member
Joined
Sep 2, 2011
Messages
2,171
Reaction score
916
@Ben, i was kidding about the tittle, meh.
Anyways in this point i agree with you, about which way you want to experiment programming first.



But i'm still the geekiest user, meeeeeh, kidding oukay?
 
Watching from above
Legend
Joined
Apr 9, 2004
Messages
3,828
Reaction score
752
Agreeing with @Ben & @Negata, as i said "I recommend you to learn from the basics, start with C. It's boring, massive and a poop. But it's the basics.", C is the basics, you don't actually need start with it. But you will learn in the best way how Programming Logic works and also, create your own functions, like cosine functions, sqrt functions..

Languages like Java, already have most of things done for you, you actually only need import. Good for who don't have time to learn or don't want to bore yourself... But programming isn't this. Sometime you will need to do something that you doesn't want to do/learn.

Languages of those days, have everything, you actually doesn't learn how the engine works behind, how the logics works. That's why C it's fundamental. Java is made in C, actually. PHP is made in C, actually.

Again, C it's boring, hard, and massive. But fundamental if you want to have a good education.

But Negata is a legend and @Ben a moderator. Who am i to say they are wrong, xD
Heh, I guess no right or wrong here, just personal opinions. Surely some opinions are less bad than others though :) In the end the whole programming experience is a personal one and different for everyone so it makes sense that people also recommend differently - all based on their own past experiences.

The silly thing is, the more experience one has in programming the better idea they probably have of what's objectively good, but at the same time with experience they tend to become more and more detached from the actual experience of diving head first into programming and how it really feels when you don't know jack about it and in that sense make very poor guides. You may find in my responses around the forum the hint that I'm on the more experienced end of the spectrum so naturally my advice tends to aim for a certain kind of correctness... but I also try very hard to make it accessible to beginners and provide advice that is meant to make the whole journey inspiring and fun, which I believe is the only way to learn the craft by heart. How I succeed in it though, well I'll leave that up to everyone else. :cool:
 
[emoji848]
Legend
Joined
Dec 3, 2011
Messages
2,232
Reaction score
1,518
Why u guys so mean to C``? :(

I see no problems starting with C as first real programming language. It teaches you that variables dont just float around but actually can be addressed to memory. It also teaches you some memory management techniques which will help you to write efficient code later on. Together with the common declarative programming pattern, which kind of every language copied off C nowadays, you'll have an easy life writing code in any language you wish, if you know C. Learning C++, you'll also learn OOP patterns which lets you jump into object-orientated languages easily.

You are learning the basics from the bottom and can build up your knowledge to reach the tops of a ton of commonly used languages these days.

When I came to C++ I had to re-learn programming from the basics, because Java / C# / etc. hide so incredibly many things and do them behind your back. Wish I had started with either C or C++ instead of C#...
 
git bisect -m
Loyal Member
Joined
Sep 2, 2011
Messages
2,171
Reaction score
916
Why u guys so mean to C``? :(

I see no problems starting with C as first real programming language. It teaches you that variables dont just float around but actually can be addressed to memory. It also teaches you some memory management techniques which will help you to write efficient code later on. Together with the common declarative programming pattern, which kind of every language copied off C nowadays, you'll have an easy life writing code in any language you wish, if you know C. Learning C++, you'll also learn OOP patterns which lets you jump into object-orientated languages easily.

You are learning the basics from the bottom and can build up your knowledge to reach the tops of a ton of commonly used languages these days.

When I came to C++ I had to re-learn programming from the basics, because Java / C# / etc. hide so incredibly many things and do them behind your back. Wish I had started with either C or C++ instead of C#...

Exactly! Bingo.
 
Watching from above
Legend
Joined
Apr 9, 2004
Messages
3,828
Reaction score
752
I just find C premature optimization. Basic and QBasic aside, I did start with C++ myself and I turned out OK so it's not exactly a bad choice but it wasn't the most joyful ride, either. Starting from the bottom up, how wide do you need to go at bottom before you can go higher? There's almost an infinite amount to learn and without a top-down view you have no idea which subset of it all you should look into. It's usually very wasteful to start at the bottom and this applies on all abstraction levels from technical details to feature specification. It's like writing a complete specification - and implementation - for an API before asking who's going to use the API and which features they really need. It's not how you handle a software project and I don't believe it should be how you handle the learning project, either. I find the top-down approach both more efficient and fun and it very naturally feeds the developer's curiosity - when you come upon a problem where you realize you have no clue what's happening under the hood you're tempted to go deeper and maybe that's the time when you look up how memory management actually works.

The above I find a very important technical point but maybe even more important is keeping it interesting. Say the OP wants to get some feel for game development. You hand him C and, he'll read a book, hit his head to the brick wall for some time and a year later he realizes he's no closer to displaying the bitmap he draw 300 days ago on the screen, quits and never returns to programming.

Then again, maybe this creates spoiled semi-developers who create all the poop code in the world thinking they're great just because they're able to make the buttons spin around on a web page with jQuery and without.
 
[emoji848]
Legend
Joined
Dec 3, 2011
Messages
2,232
Reaction score
1,518
I just find C premature optimization. Basic and QBasic aside, I did start with C++ myself and I turned out OK so it's not exactly a bad choice but it wasn't the most joyful ride, either. Starting from the bottom up, how wide do you need to go at bottom before you can go higher? There's almost an infinite amount to learn and without a top-down view you have no idea which subset of it all you should look into. It's usually very wasteful to start at the bottom and this applies on all abstraction levels from technical details to feature specification. It's like writing a complete specification - and implementation - for an API before asking who's going to use the API and which features they really need. It's not how you handle a software project and I don't believe it should be how you handle the learning project, either. I find the top-down approach both more efficient and fun and it very naturally feeds the developer's curiosity - when you come upon a problem where you realize you have no clue what's happening under the hood you're tempted to go deeper and maybe that's the time when you look up how memory management actually works.

The above I find a very important technical point but maybe even more important is keeping it interesting. Say the OP wants to get some feel for game development. You hand him C and, he'll read a book, hit his head to the brick wall for some time and a year later he realizes he's no closer to displaying the bitmap he draw 300 days ago on the screen, quits and never returns to programming.

Then again, maybe this creates spoiled semi-developers who create all the poop code in the world thinking they're great just because they're able to make the buttons spin around on a web page with jQuery and without.

Looks like we both took an approach we are not very happy with then :p

I can relate specially well to your last paragraph. I've seen code being written in C#, Java, hell even JS that just has utter performance issues. In the end all code is executed by the same hardware. Just the amount of wrappers / compilers / interpreters messing with it differs depending on the language. Best example might be a string which is treated like a data type in nearly all languages nowadays and easily distracts you from realizing that it's a dynamically sizing object. It easily leads you to make silly copies or unnecessary operations with it, that run very cpu intensive. Something you'd think about a little further, had you dealt with native character arrays before, at least that's what happened with me.

That's an example why I'm a big fan of learning things "the proper way" before jumping into high level managed languages. I believe it's very beneficial for beginners to have no overhead or runtime poop put around their first coding attempts. What they code is what they get.

Though if you know that you're only going to do the same stuff (websites, databases, etc.) in your foreseeable future, I agree with you. Time will be better spent working with what you get presented on a silver plate, to serve your purpose.
 
Watching from above
Legend
Joined
Apr 9, 2004
Messages
3,828
Reaction score
752
Looks like we both took an approach we are not very happy with then :p

I can relate specially well to your last paragraph. I've seen code being written in C#, Java, hell even JS that just has utter performance issues. In the end all code is executed by the same hardware. Just the amount of wrappers / compilers / interpreters messing with it differs depending on the language. Best example might be a string which is treated like a data type in nearly all languages nowadays and easily distracts you from realizing that it's a dynamically sizing object. It easily leads you to make silly copies or unnecessary operations with it, that run very cpu intensive. Something you'd think about a little further, had you dealt with native character arrays before, at least that's what happened with me.

That's an example why I'm a big fan of learning things "the proper way" before jumping into high level managed languages. I believe it's very beneficial for beginners to have no overhead or runtime poop put around their first coding attempts. What they code is what they get.

Though if you know that you're only going to do the same stuff (websites, databases, etc.) in your foreseeable future, I agree with you. Time will be better spent working with what you get presented on a silver plate, to serve your purpose.
Well I do like all your argumentation and I'm not totally opposed to it.. and truth to be told none of us really knows what the best way is. What is the end goal anyway? Let's just agree to disagree on the opinion here and stop overflowing this thread along with the end note that I'm glad we don't all think the same way here :cool:
 
Veni, Vidi, Vici
Loyal Member
Joined
Jan 31, 2010
Messages
1,472
Reaction score
247
Depends on the route you want to take further on, honestly.

ML, ANNs, etc. require that you're well versed with C programming and hardware architecture. In my experience, this helps a lot with your career as a whole and makes you a better programmer with a better writing style and a better logical advantage than most.

If not, you're better off going with JS and the other poop people do these days. ¯\_(ツ)_/¯

On a more personal note, I learnt C++ first, then C, then C#, and then Java. Never wanted to pick up Java TBH, but hey - college makes you do weird poop.

Funny this is, my job as a sysadmin doesn't require me to program. Ever.

But the poop I picked up along the way helps all the time. And that's my point. Do what you wanna do, it makes no difference in the end game.
 

Ben

Developer - JS
Developer
Joined
Jul 6, 2013
Messages
1,224
Reaction score
506
Depends on the route you want to take further on, honestly.

ML, ANNs, etc. require that you're well versed with C programming and hardware architecture. In my experience, this helps a lot with your career as a whole and makes you a better programmer with a better writing style and a better logical advantage than most.

If not, you're better off going with JS and the other poop people do these days. ¯\_(ツ)_/¯

On a more personal note, I learnt C++ first, then C, then C#, and then Java. Never wanted to pick up Java TBH, but hey - college makes you do weird poop.

Funny this is, my job as a sysadmin doesn't require me to program. Ever.

But the poop I picked up along the way helps all the time. And that's my point. Do what you wanna do, it makes no difference in the end game.

Not even Python or Powershell scripting?
 
Junior Spellweaver
Joined
Sep 24, 2008
Messages
183
Reaction score
110
I started with C and then i moved to C#, because c its boring, but at the first look and coding in C# and looked at mirror and tough "oh boy, i tought i knew something, but i'm just like jon snow, i know nothing"
 
Watching from above
Legend
Joined
Apr 9, 2004
Messages
3,828
Reaction score
752
I started with C and then i moved to C#, because c its boring, but at the first look and coding in C# and looked at mirror and tough "oh boy, i tought i knew something, but i'm just like jon snow, i know nothing"
You're in for many more surprises when you later try languages of other families :)
 
Back
Top