New to programming, where to start?

Page 6 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

imaheadcase

Diamond Member
May 9, 2005
3,850
7
76
Here is my experience so far with learning programming (so far).

I started off with codecademy for Python. No reason other than my brother uses Python and its easier to get help in a bind if you know someone already. I have been at it for only 2 weeks, a couple hours a day.

Besides codeacademy i watched this http://www.youtube.com/watch?v=N-ae8Q_7iCA

I also use Learn Python The Hard Way, its excellent, "easy" to understand. Of course its going to get more difficult, but by easy its easy to follow.

Thats all you should focus on for starts, don't get to carried away with it. If you get to far ahead you will get confused.

The key to programming i've been told is to take time to understand each thing before you move on, simply reading something over and over helps, but if you are like me, doing it is better. If its a simple as typing print "hello world" over and over for 5 minutes, do it.

The reason i use codecademy and Learn Python The Hard way is because if I get stuck on one, i can catch up to area i'm learning on another and it helps to understand better why I can't' continue past a particular problem. Both are excellent mind you, its just one is more "do this and that" and the other is "this is why you do this and then that" type of sites. :)

I know thread is old, but thought I would share how i'm doing it.
 

Graze

Senior member
Nov 27, 2012
468
1
0
Simply I don't want to mess my register with shambes. That's why I ask and also want to save time with installing somthing what i don't need. There is a lot of crapped software which is advertised as free but it is just trial which I have to uninstall immediately or after 14-30 days. My computer is not garbage bin to install every program I just have heard about!

A few seconds with a Google search or perhaps actually visiting Microsoft's website would have gotten you all the answers you needed.

http://www.microsoft.com/visualstudio/eng/downloads#d-2012-editions

...After installation, you can try this product for up to 30 days. You must register to obtain a free product key for ongoing use after 30 days.

If you want to mess up your precious how about you just do everything in a VM instead then?
 

h4ever

Member
Aug 30, 2013
163
0
0
If you want to mess up your precious how about you just do everything in a VM instead then?

Hm I dont understand any word you say. However you refer me to the original page to download. Should I download from the blue table instead the purple one? Or are all apps on those page trials? Why nobody is exact and accurate?
 

Graze

Senior member
Nov 27, 2012
468
1
0
Hm I dont understand any word you say. However you refer me to the original page to download. Should I download from the blue table instead the purple one? Or are all apps on those page trials? Why nobody is exact and accurate?

Because you touch yourself at night?
 

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81
Hm I dont understand any word you say. However you refer me to the original page to download. Should I download from the blue table instead the purple one? Or are all apps on those page trials? Why nobody is exact and accurate?

Is it that difficult? click the visual c++ 2010 express and download.Honestly just a quick Google would have helped you tremendously.
 

h4ever

Member
Aug 30, 2013
163
0
0
Is it that difficult? click the visual c++ 2010 express and download.Honestly just a quick Google would have helped you tremendously.

No it is not difficult, but you did not typed exactly what I should look for. You typed "Visual C++ express" and this result did Find Visual Studio ... but you did not typed Visual STUDIO so I found this:

Visual C++ Express (free) - Download the latest version in english ...

and here I downloaded. It is not my mistake, I didn't know the exact name of the product.

So I was not on the producer page and skipped the information about trial version.

Anyway thanks for explanation
 
Last edited:

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81

irishScott

Lifer
Oct 10, 2006
21,562
3
0
Correlation, not causation comes to mind here

Well TMK there's yet to be an official study comparing the learning efficacy of Python/Java vs c++, but c++ requires you to do more, know more, learn more, and work harder. Stands to reason it would produce better overall coders.



Are you really going to troubleshoot the JVM? I think everyone here would be lost. If you do, well shit, I'd have to respect that. I can't and I don't think I want to.

Not directly troubleshoot, but a Java programmer should be able to recognize a JVM bug or crash for what it is. To use the car analogy, if my car won't run for very long before everything shuts down, then I know from my foundational knowledge of cars that the problem is likely the alternator. Granted I need to take it to a professional to have it officially diagnosed and fixed, but knowing what the problem likely is means I can get a rough idea of the cost for repairs. If the problem is something more minor (ie: a loose serpentine belt or leaking coolant hose) then I might be able to find a direct work-around or fix it myself; but doing so requires at least rudimentary knowledge of the underlying system.



The market and amount of problems that need to be solved with embedded solutions are smaller than the number of things built on top of that. For most programmers, looking into an embedded programming career is going to be the minority of people out there because it's the minority of work out there.

The masses today means not just the consumer but every business and then every problem that arises that needs to be met with programming. Webapps, local apps, enterprise software (SAP ect) and tying all that together massively outweighs the job market for embedded programming.

Yes and no. As you say, higher level solutions are built on top of embedded ones. Sure the end-user market is "bigger", but embedded is quite literally everywhere at this point. Even flashlights and light-bulbs. Sure embedded programmers are a "minority", so's Apple's market-share.

C/C++ are high level languages, and an argument against the need for the use of low level languages. They've just been so successful they've just moved the bar as to what we expect.

That said, languages aren't just programmed in C/C++, many new languages are written in Ruby quite often. Thanks to faster hardware it doesn't usually matter if it's laughably inefficient, it just needs to solve the problem. I haven't really needed to write my own language, but it makes a lot of sense if you're presenting an interface to non-programmers.
I should put a disclaimer that I am NOT the 'benchmark' type. I think looking at performance from the perspective of what you need makes more sense, rather than some arbitrary standard. There's plenty of software to jump into and optimize, but few do because it's a waste of time if it meets requirements.

True. At the end of the day what gets the job done gets the job done. But if you take that too far you'll get undercut.

Say someone builds a piece of software in some doubly-interpreted language. People love it, it's successful, and it rules the field for a time. But as it grows and grows it gets more and more bloated. Then someone ports it to a compiled language that, despite more intensive development requirements, does everything several times as fast. Which do you think customers will want?

You mention the business arena, this would be especially true for large companies where scaling can turn momentary delays into massive ones.

There's a time/performance sweet-spot for everything. It's certainly not worth diving into assembly to optimize things like it was in the 80s. But for complex, highly scaled or resource-limited applications there is a point of diminishing returns from abstraction. I don't see a permanent linear relationship between hardware performance and abstraction. More logarithmic IMO.
 

h4ever

Member
Aug 30, 2013
163
0
0
I didn't because Visual C++ express has many editions

I hope that I don't bother you with my questions because I prefer to ask first. What kind of data does MS request for registration, do they require any personal data except email address? Again I am suspicious against any commercial subject.
 

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81
I hope that I don't bother you with my questions because I prefer to ask first. What kind of data does MS request for registration, do they require any personal data except email address? Again I am suspicious against any commercial subject.

It is trivial, no need to worry about that.
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
Well TMK there's yet to be an official study comparing the learning efficacy of Python/Java vs c++, but c++ requires you to do more, know more, learn more, and work harder. Stands to reason it would produce better overall coders.

Perhaps. (I'm not who you responded to) But I really don't think it matters nearly that much. I've recently began to dig back into C++ after doing a lot of java work. While there are some gotchas between the two, it really hasn't been all that hard. Dealing with the nitty gritty isn't nearly as bad as some are trying to make it out to be. I've found you worry just a little bit more about memory in C++ than java, but that is about it.

Not directly troubleshoot, but a Java programmer should be able to recognize a JVM bug or crash for what it is. To use the car analogy, if my car won't run for very long before everything shuts down, then I know from my foundational knowledge of cars that the problem is likely the alternator. Granted I need to take it to a professional to have it officially diagnosed and fixed, but knowing what the problem likely is means I can get a rough idea of the cost for repairs. If the problem is something more minor (ie: a loose serpentine belt or leaking coolant hose) then I might be able to find a direct work-around or fix it myself; but doing so requires at least rudimentary knowledge of the underlying system.
Honestly, I've never seen one. A quick poll of my coworkers and they have very rarely seen one. It is more useful to be able to find out a bug is caused by the jvm then to have the innate knowledge of what is a JVM bug and what is a self made bug (because, honestly, 99.9% of the time the problem isn't with the JVM. Java 6+ is VERY stable).

Say someone builds a piece of software in some doubly-interpreted language. People love it, it's successful, and it rules the field for a time. But as it grows and grows it gets more and more bloated. Then someone ports it to a compiled language that, despite more intensive development requirements, does everything several times as fast. Which do you think customers will want?

that really, REALLY, depends. Speed is really rarely such an issue that the consumer would care. Sure saying "We are x times faster" is catchy, but at the end of the day that isn't likely going to be the thing that makes the customer choose your product over another (unless you are actually in a market where speed and performance matter).

For example, ruby is a horribly slow programming language, yet RoR is somewhat popular. Yet, honestly, the same thing could be done in C, C++, or java. So why isn't something like the Java play framework more popular than RoR? The answer is that performance doesn't really matter for a majority of use cases and users.

There's a time/performance sweet-spot for everything. It's certainly not worth diving into assembly to optimize things like it was in the 80s. But for complex, highly scaled or resource-limited applications there is a point of diminishing returns from abstraction. I don't see a permanent linear relationship between hardware performance and abstraction. More logarithmic IMO.
I personally think the sweet spot is best found by starting as high up the abstraction chain as you can and then using Amdahl's law to find slow point and optimize. You end up with the best of both worlds, A high speed code where it is needed, high abstraction where you don't care. You don't, however, find this by starting at the low level. Rather, you end up with an app that is more complex in many places that don't matter while offering minimal performance benefits.

However, as I stated earlier, I think the programming language a beginner starts with is very inconsequential to their overall learning. The part of programming that is hard is abstract and logical thinking, and that happens regardless of language choice.
 

iCyborg

Golden Member
Aug 8, 2008
1,352
62
91
However, as I stated earlier, I think the programming language a beginner starts with is very inconsequential to their overall learning. The part of programming that is hard is abstract and logical thinking, and that happens regardless of language choice.
I agree, but I've found that what language you use at the start of your professional career can be quite consequential: once you're beyond entry/intermediate level, it's hard to get into a senior level position without 3-5+ years of experience in the particular language they require. There are exceptions, of course, and it's a shortsighted approach, but it seems the industry norm.
 

h4ever

Member
Aug 30, 2013
163
0
0
I have installed the Visual Studio C++ Express and started new project
with this code
http://paste.ofcode.org/36VdhVKHXtC9DNcM7wfZ8k3
but I got these errors,
Cannot find or open the PDB file

http://paste.ofcode.org/HMc29jXywWxCjQK4QY8D74
can you explain what that means? What to do to remove. I want to test first code.

Also if I got message:
test3.vcxproj -> C:\projects\test3\Debug\test3.exe
Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped

Why I cannot find test3.exe, instead of it
test3.exe.intermediate.manifest
I expected I could see what the program send to output, because it should display:

a area: 2
*b area: 12
*c area: 2
d[0] area: 30
d[1] area: 56

Is there possible to test faster without need to compile? I mean just to let the program to test the syntax first. Not to compile it whole coz it takes time.
 
Last edited:

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81
I have installed the Visual Studio C++ Express and started new project
with this code
http://paste.ofcode.org/36VdhVKHXtC9DNcM7wfZ8k3
but I got these errors,
Cannot find or open the PDB file

http://paste.ofcode.org/HMc29jXywWxCjQK4QY8D74
can you explain what that means? What to do to remove. I want to test first code.

Go to Tools->Options->Debugging->Symbols and select the checkbox "Microsoft Symbol Servers" , you don't need debug information for these dlls anyway for this simple program.
 

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81
I have installed the Visual Studio C++ Express and started new project
with this code
http://paste.ofcode.org/36VdhVKHXtC9DNcM7wfZ8k3
but I got these errors,
Cannot find or open the PDB file

http://paste.ofcode.org/HMc29jXywWxCjQK4QY8D74
can you explain what that means? What to do to remove. I want to test first code.

Also if I got message:
test3.vcxproj -> C:\projects\test3\Debug\test3.exe
Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped

Why I cannot find test3.exe, instead of it
test3.exe.intermediate.manifest
I expected I could see what the program send to output, because it should display:

a area: 2
*b area: 12
*c area: 2
d[0] area: 30
d[1] area: 56

Is there possible to test faster without need to compile? I mean just to let the program to test the syntax first. Not to compile it whole coz it takes time.

You need to look in the solution directory, not your project directory.
A solution can have multiple projects, each having their own debug and release folder. Each project writes its final files to the solution's debug and release directory, which is the directory that contains the project folders.Assuming the solution's name is also Test, Look in "Documents\Visual Studio\Projects\Test\Debug". The manifest files store information regarding the dependencies.
 

h4ever

Member
Aug 30, 2013
163
0
0
You need to look in the solution directory, not your project directory.
A solution can have multiple projects, each having their own debug and release folder. Each project writes its final files to the solution's debug and release directory, which is the directory that contains the project folders.Assuming the solution's name is also Test, Look in "Documents\Visual Studio\Projects\Test\Debug".

There are no folders or files in the directory.
Also I still got the messages if I enable Microsoft Symbol Servers.
It comes to me strange that I dont see console where I would see output of the program I just debugged. My first program where I learned programming was Pascal in 98th. There was a possibility to run some kind of fast debugging so screen opened where you saw the output of the program. It was immediate - without compilation because compilation takes much longer. So it seems strange to me that I must to look for compiled file to see what it does.
 
Last edited:

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81
There are no folders or files in the directory.
Also I still got the messages if I enable Microsoft Symbol Servers.
It comes to me strange that I dont see console where I would see output of the program I just debugged. My first program where I learned programming was Pascal in 98th. There was a possibility to run some kind of fast debugging so screen opened where you saw the output of the program. It was immediate - without compilation because compilation takes much longer. So it seems strange to me that I must to look for compiled file to see what it does.

Here you go

I would recommend "Win32 console application" going forward.

In the solution explorer select "project" from the menu bar drop down menus, then select "*project_name* properties" > "configuration properties" > "linker" > "system" and set the first property, the drop down "subsystem" property to "console (/SUBSYSTEM:CONSOLE)". The console window should now stay open after execution as usual.
 

h4ever

Member
Aug 30, 2013
163
0
0
In the solution explorer select "project" from the menu bar drop down menus, then select "*project_name* properties" > "configuration properties" > "linker" > "system" and set the first property, the drop down "subsystem" property to "console (/SUBSYSTEM:CONSOLE)". The console window should now stay open after execution as usual.

I have no idea what you describe. Should I first click on New project? And select Visual C++/Win32/Win32 Console Application? Otherwise I have no idea where to find "*project_name* properties" > "configuration properties" > "linker" > "system"

After I submit new project I see no items as you described.

Which drop down menus you are talking about? Do you have the same version or you have something different on screen?
 
Last edited:

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81
I have no idea what you describe. Should I first click on New project? And select Visual C++/Win32/Win32 Console Application? Otherwise I have no idea where to find "*project_name* properties" > "configuration properties" > "linker" > "system"

After I submit new project I see no items as you described.

Which drop down menus you are talking about? Do you have the same version or you have something different on screen?

Create a Win32 Console Application and nothing will be needed.
 

h4ever

Member
Aug 30, 2013
163
0
0
OK, but I still dont see the console and I got this error message:

------ Build started: Project: test4, Configuration: Debug Win32 ------
test4.cpp
C:\projects\test4\test4\test4.cpp(2): warning C4627: '#include <iostream>': skipped when looking for precompiled header use
Add directive to 'StdAfx.h' or rebuild precompiled header
C:\projects\test4\test4\test4.cpp(37): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
 

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81
OK, but I still dont see the console and I got this error message:

------ Build started: Project: test4, Configuration: Debug Win32 ------
test4.cpp
C:\projects\test4\test4\test4.cpp(2): warning C4627: '#include <iostream>': skipped when looking for precompiled header use
Add directive to 'StdAfx.h' or rebuild precompiled header
C:\projects\test4\test4\test4.cpp(37): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Remove all the recompiled headers and ensure that you only have "include<iostream>", also you should have only your .cpp file.
 

h4ever

Member
Aug 30, 2013
163
0
0
I have found the Window.

Checking settings of the project I have found Input: Additional dependencies:
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%
Is here something what I don't need when I do only simple program like I pasted the code? As I am not sure what those drivers are supposed to do, maybe I don't need them?

Console (/SUBSYSTEM:CONSOLE)
Was set untouched.

Also I have found Command Line options, could I change something?
/OUT:"c:\projects\test4\Debug\test4.exe" /INCREMENTAL /NOLOGO "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Debug\test4.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"c:\projects\test4\Debug\test4.pdb" /SUBSYSTEM:CONSOLE /PGD:"c:\projects\test4\Debug\test4.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
 

Jaydip

Diamond Member
Mar 29, 2010
3,691
21
81
I have found the Window.

Checking settings of the project I have found Input: Additional dependencies:
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%
Is here something what I don't need when I do only simple program like I pasted the code? As I am not sure what those drivers are supposed to do, maybe I don't need them?

Console (/SUBSYSTEM:CONSOLE)
Was set untouched.

Also I have found Command Line options, could I change something?
/OUT:"c:\projects\test4\Debug\test4.exe" /INCREMENTAL /NOLOGO "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Debug\test4.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"c:\projects\test4\Debug\test4.pdb" /SUBSYSTEM:CONSOLE /PGD:"c:\projects\test4\Debug\test4.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE

leave them alone
 

Graze

Senior member
Nov 27, 2012
468
1
0
Can't this guy start his own thread now.
How can the mods even allow this nonsense?