11-10-2014, 03:06 PM
|
#1
|
Franchise Player
|
Want to learn Programming ... no idea where to start
I have absolutely no experience with programming at all, the logic, the functions ... none of it. However I'd like to start learning it just to deepen my understanding of how the underlying components of applications work to assist with my general IT knowledge.
I was thinking of starting with C++ as a foundation and then moving to .NET (to broaden my IIS web apps understanding) and then Java (just cuz?), but with so many languages out there, I really don't know where to start at all.
Can anyone give any recommendations of sites or good books for total newbs when it comes to C++ ... or if C++ is even a good foundational place to start at all?
__________________
Quote:
Originally Posted by MisterJoji
Johnny eats garbage and isn’t 100% committed.
|
|
|
|
11-10-2014, 03:16 PM
|
#2
|
Franchise Player
Join Date: Oct 2010
Location: Calgary
|
Absolutely C++ is a great place to start for programming. This depends on what you are trying to head towards as an end goal as a development platform though. As a basic first language to learn it's great. A lot of the syntax and structure are transferable to other programming languages, it teaches basic OOO (Object Orientated Program also transferable) and memory management skills (that language like Java would lack a little more). Drawback is garbage collection in Java (or javascript) and reliance on the built in memory management such as garbage collectors.
I've worked over 8+ years in software development on embedded and constrained platforms (before moving to architecture) and trying to teach proper memory management to people who started programming on Java/javascript, etc is a constant nightmare. Plus relying on third party vendors to trigger garbage collection at the appropriate times during the right operation on a JS/Node/Java platform has been a big struggle which we sometimes have no control over.
One of the best learning tools when I first started out was kern and ritchies (sp?) C++ books. Nowadays though I point people to http://www.learncpp.com/
Good luck, let me know if you'd like something more.
Last edited by FlameOn; 11-10-2014 at 03:27 PM.
|
|
|
The Following User Says Thank You to FlameOn For This Useful Post:
|
|
11-10-2014, 03:23 PM
|
#3
|
#1 Goaltender
Join Date: Oct 2009
Location: North of the River, South of the Bluff
|
This site is a learn to code beginner site that the big tech companies (MSFT, Google, Facebook, etc) are all behind.
http://code.org/learn
I have never used it, it looks more geared to teens, but its purpose is to get people to try and code. From there you can decide if you want to take it further.
I was a senior developer in a past life, and I haven't coded in 10 years. So I wouldn't be the best person for current books. I used the Wrox books quite a bit. I think they have some beginner books.
C++ was the first language I learned. Honestly, I would have preferred a less hardcore and more rewarding language to start. I always really liked VB.NET as it is more like human language, but I think C# will teach you more of the true OO principles.
I think you just need to figure out (if you haven't) what you want to do. If it is to get into programming C++ is a very good place to start. If it is hobbyist, to spin up a site then maybe VB.NET, HTML, Javascript might be more rewarding.
Anyways, I think it is great you are wanting to learn. It is something that actually is easy to learn, but an art to master. I honestly used to look at well designed code like some look at art. Stuff that will blow you mind once you learn to appreciate it.
|
|
|
The Following User Says Thank You to OldDutch For This Useful Post:
|
|
11-10-2014, 04:21 PM
|
#5
|
Franchise Player
Join Date: Feb 2011
Location: Somewhere down the crazy river.
|
Quote:
Originally Posted by FlameOn
One of the best learning tools when I first started out was kern and ritchies (sp?) C++ books. Nowadays though I point people to http://www.learncpp.com/
Good luck, let me know if you'd like something more.
|
I think that was Kernigan and Ritche, and wasn't their book on C programming?
|
|
|
The Following User Says Thank You to Wormius For This Useful Post:
|
|
11-10-2014, 04:24 PM
|
#6
|
Crash and Bang Winger
|
Quote:
Originally Posted by OldDutch
This site is a learn to code beginner site that the big tech companies (MSFT, Google, Facebook, etc) are all behind.
http://code.org/learn
I have never used it, it looks more geared to teens, but its purpose is to get people to try and code. From there you can decide if you want to take it further.
I was a senior developer in a past life, and I haven't coded in 10 years. So I wouldn't be the best person for current books. I used the Wrox books quite a bit. I think they have some beginner books.
C++ was the first language I learned. Honestly, I would have preferred a less hardcore and more rewarding language to start. I always really liked VB.NET as it is more like human language, but I think C# will teach you more of the true OO principles.
I think you just need to figure out (if you haven't) what you want to do. If it is to get into programming C++ is a very good place to start. If it is hobbyist, to spin up a site then maybe VB.NET, HTML, Javascript might be more rewarding.
Anyways, I think it is great you are wanting to learn. It is something that actually is easy to learn, but an art to master. I honestly used to look at well designed code like some look at art. Stuff that will blow you mind once you learn to appreciate it.
|
I don't want to derail the thread, but I'm curious as to what you transitioned to, and whether it related to your time as a software developer.
|
|
|
11-10-2014, 04:24 PM
|
#7
|
The new goggles also do nothing.
Join Date: Oct 2001
Location: Calgary
|
Starting in C++ can be both good and bad. If one wanted to become a programmer as a career I think it'd still be a good place to start if only because it teaches you things at a lower level that while you might not ever need to directly address in other current languages, it does give you an understanding about what's going on that can help make the most of things or figure out problems.
But from a dabbler point of view I'm not sure that C++ is the best from a time vs. reward point of view.
If you want to toy around with making Windows apps C# would be the way to go.
Web stuff I have a bias against Microsoft if only because the cost of entry. Ruby might be a good place to start.
Java is also a good basic language to start with (I use Java mostly) but can suffer the same problem as C++; the effort to get something significant (a website for example) can be higher.
You could also use Java to create Android apps.
__________________
Uncertainty is an uncomfortable position.
But certainty is an absurd one.
|
|
|
11-10-2014, 04:27 PM
|
#8
|
Franchise Player
Join Date: Jul 2010
Location: Apartment 5A
|
I love me some Java.
|
|
|
11-11-2014, 05:36 AM
|
#9
|
Scoring Winger
Join Date: May 2008
Location: Syracuse, NY
|
Assembly.
Learn it.
__________________
...Rob
The American Dream isn't an SUV and a house in the suburbs;
it's Don't Tread On Me.
|
|
|
11-11-2014, 07:59 AM
|
#10
|
#1 Goaltender
Join Date: Oct 2009
Location: North of the River, South of the Bluff
|
Quote:
Originally Posted by comrade
I don't want to derail the thread, but I'm curious as to what you transitioned to, and whether it related to your time as a software developer.
|
I was a developer (.NET, Java mainly) for 6 years professionally. I ended up going into Business Analysis, then Project Management, and now I do Portfolio Management (Manage a group of projects and programs). So I got away from the technical side and more into the business side.
Completely by fluke. I answered a job posting for a BA at an O&G company and thought it was a fancy name for a programmer. The guy who interviewed me was awesome and explained the job which sounded good to me. I always was very business mined in my developer role and decided to give it a try. I really enjoy managing clients and not coding. Both are difficult in their own ways, but this is less late nights and stress I find. Maybe it is because I am more natural at this than coding, which I used to pull my hair out over.
I do miss it sometimes, loved to build something cool, or figure out a problem. Maybe one day I will go back but for now I am happy with the career path I took.
|
|
|
The Following User Says Thank You to OldDutch For This Useful Post:
|
|
11-11-2014, 09:26 AM
|
#11
|
Powerplay Quarterback
|
Quote:
Originally Posted by photon
Starting in C++ can be both good and bad. If one wanted to become a programmer as a career I think it'd still be a good place to start if only because it teaches you things at a lower level that while you might not ever need to directly address in other current languages, it does give you an understanding about what's going on that can help make the most of things or figure out problems.
But from a dabbler point of view I'm not sure that C++ is the best from a time vs. reward point of view.
If you want to toy around with making Windows apps C# would be the way to go.
Web stuff I have a bias against Microsoft if only because the cost of entry. Ruby might be a good place to start.
Java is also a good basic language to start with (I use Java mostly) but can suffer the same problem as C++; the effort to get something significant (a website for example) can be higher.
You could also use Java to create Android apps.
|
Gotta agree - C/C++ can be frustrating to learn on because it's easy to write programs that crash until you get a deeper understanding of what's going on at a lower level. C# or Java are better in that regards.
To learn the ropes and get comfortable with programming, I would suggest an interpreted language just so you can quickly write something and not worry about the build process.
This may be a bit of strange recommendation, but Visual Basic 6 is almost ideal. Easy GUI interface, debugging environment is very similar to running an interpreted language, supports procedural and 75% of object-oriented design, and still lots of good examples on the internet. It's great for learning basic syntax (all non-functional languages will have the same core sets of instructions - variables, math and logic expresssions, for loops, while loops, if-the-else, functions, etc), event-based programming, and gui design. Best of all, if you own Word, Excel, or Powerpoint, you will have an almost complete VB6 environment to work in. In Office 2010 products, go to View->Macros, type in a program name like "Test", and click "Create".
My daughter is learning to code on an old copy of VB6 I had lying around. She just had a friend over for a playdate where they conceived and wrote a program to control a jumping frog across the screen. It brought a tear to my eye.
|
|
|
11-11-2014, 12:27 PM
|
#12
|
Franchise Player
Join Date: Feb 2011
Location: Somewhere down the crazy river.
|
+1 for VB is pretty easy to get started with, and the auto-complete on helps a ton if you're unsure of a function. The IDE is pretty decent for debugging your code.
The downside is that VB is not a good programming language itself, and I don't think its even similar to any of the more popular programming languages, so essentially you'd just be able to easily create applications for Windows systems, and learn about algorithms, though some of that might be obscured as VB has functions for sorting and other tasks that you would ordinarily have to understand at an even more basic (excuse the pun) level.
|
|
|
11-11-2014, 12:56 PM
|
#13
|
#1 Goaltender
Join Date: Oct 2002
Location: Calgary - Transplanted Manitoban
|
|
|
|
11-11-2014, 01:02 PM
|
#14
|
It's not easy being green!
Join Date: Oct 2001
Location: In the tubes to Vancouver Island
|
C++ is not where I would start. Java or something like that would be better IMO.
Personally, I love writing ruby code.
__________________
Who is in charge of this product and why haven't they been fired yet?
|
|
|
11-11-2014, 01:09 PM
|
#15
|
Powerplay Quarterback
|
Quote:
Originally Posted by Wormius
+1 for VB is pretty easy to get started with, and the auto-complete on helps a ton if you're unsure of a function. The IDE is pretty decent for debugging your code.
The downside is that VB is not a good programming language itself, and I don't think its even similar to any of the more popular programming languages, so essentially you'd just be able to easily create applications for Windows systems, and learn about algorithms, though some of that might be obscured as VB has functions for sorting and other tasks that you would ordinarily have to understand at an even more basic (excuse the pun) level.
|
In University, I found that learning one procedural language, one object-oriented language, and 1 functional language well allowed me to pick up virtually any other programming language very quickly. VB6 is pretty outdated, sure, but I think working with it will help gain an understanding of other languages, and it has a very low barrier to entry.
I think learning algorithms/data structures are necessary if you are going to pursue software dev. as a career, but to get started, using things like VB's built-in collection class without understanding their implementation is fine. And most common languages don't require you to write those algorithms anyways - they are usually provided in a class or library.
Another possible language to learn on is javascript - no compilation, and everyone has a browser to run in. I think it not being strongly typed, and also a dynamic language makes it a bit too loose for a beginner's language. Plus the need to understand HTML/DOM to provide a gui (other than message boxes) doesn't help. Finally, while Chrome or Firefox's debugger are great, they still aren't as good as VB6's.
|
|
|
04-24-2015, 09:10 PM
|
#16
|
Lifetime Suspension
Join Date: Mar 2007
Location: Calgary
|
With someone who has zero knowledge of programming concepts, it might be wise to learn the basics with something like C (functions, logic statements, structs ect) before you get into any OO stuff. A good understanding of C syntax will allow you to easily understand PHP, C#, Java and C++
and yes i agree with some Ruby is very nice but is not related syntactically to C based languages.
Then depending on your path - look at frameworks, Rails, Cake, .Net ect..
|
|
|
04-24-2015, 09:22 PM
|
#18
|
#1 Goaltender
Join Date: Oct 2005
Location: Not sure
|
You looking at android or windows or just in general?
__________________
Quote:
Originally posted by Bingo.
Maybe he hates cowboy boots.
|
|
|
|
04-26-2015, 12:16 AM
|
#19
|
First Line Centre
Join Date: Nov 2006
Location: /dev/null
|
C++ is an absolutely terrible place to start if you are learning programming on your own. I would only recommend that language to people who already know the basics of general programming techniques and are curious about the internals of how a modern computer works.
I code professionally in Ruby, Java and Perl and have extensive experience with C and PHP in the past. From my perspective, the best place to start is Ruby.
Buy a good Ruby tutorial book and go through it from start to finish. By the time you're done, you'll have a good foundation to make an informed decision over your next steps.
Recommended starting book: http://www.amazon.ca/Beginning-Ruby-...Beginning+Ruby
There are plenty of tutorial sites, many have already been listed. I personally benefitted most from a physical book, but each person learns in their own way.
Once you're done with that, you'll have a better perspective on your next steps, be it application, web, or mobile development. The basics of programming are universal across all languages - so focus on that and you'll be well setup for whatever tickles your future fancy.
|
|
|
The Following User Says Thank You to llama64 For This Useful Post:
|
|
04-26-2015, 01:14 PM
|
#20
|
Powerplay Quarterback
|
C++ for Everyone by Cay and Horstmann is a good book for teaching the concepts and is very beginner friendly. When I taught myself C++, i just did all the exercises on that book using bloodshed's Dev C++ IDE
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -6. The time now is 05:02 AM.
|
|