FreakWave

Honorable
May 3, 2012
14
0
10,560
So I've decided that i want to be a programmer. I would like to learn c# but i don't no where to start so could could someone tell me what i need to program c# i.e notepad or visual studio and could someone direct me to a site which can teach me?
 

majestic1805

Honorable
Oct 1, 2012
69
0
10,590
A lot of people don't like Visual Studio firstly. In any case, a beginner to the .net framework can learn a lot about the compilation process, and compilers in general if they're new to programming entirely, if they compile things by hand at least at first. There are a lot of important lessons to learn along the way that should be reflected in how you write code.

A tutorial and clicking 'build' in an IDE does not make you a programmer. The OP has a long road ahead of them.
 

majestic1805

Honorable
Oct 1, 2012
69
0
10,590
It's called learning. If you don't want to work with a case sensitive language I suggest starting out with VB.NET instead. Between the two there are only syntactic differences. You can write the exact same application with both.
 

majestic1805

Honorable
Oct 1, 2012
69
0
10,590
How the .net compilation process works, which options are available and hopefully which options should be used when. For example, do you instruct it to optimize your code or not? Do you check the unsafe option? What sort of assembly signing features does it have? These are all very important to know.
 

Ijack

Distinguished
I'm not sure that using the command line teaches you that any more than using the project options in Visual Studio does. The fact that you can set the options on the command line teaches you nothing about what they do or why you should use them; but the integrated help system in Visual Studio will far more likely help with this.

I'm with Sunius that the code completion and other help features built into Visual Studio are far more educational than simply running the compiler in a command prompt. But each to their own.
 

majestic1805

Honorable
Oct 1, 2012
69
0
10,590
It's about learning the underlying structures behind your tools. The point is to research, read and learn. Merely checking a box in a menu does nothing to teach you about what exactly it does or why it's important. There's a reason struggles teach us the best lessons: because it's not convenient. Menu options that "just do it" for you don't require a second thought. However, if you're telling a command line character-for-character which commands to pass into something you're more likely to care because you don't want to waste your own time. In the end, it's about excellence and craftsmanship.

If the OP wants to be a programmer then I have to ask myself what would I say to a potential coworker which leads me to question the kind of coworkers I want to have. The answer to that is knowledgeable ones that aren't hamstrung if they can't access a tutorial quickly and those that have a firm grasp of underlying theory as well as practice.
 

Ijack

Distinguished
Having programmed professionally for over 20 years, I respectfully disagree with you. Taking your argument to the extreme, everyone should learn to program by typing in binary numbers, then proceed to assembler, then, ....

But it would be a sad world if we all thought the same way.
 

majestic1805

Honorable
Oct 1, 2012
69
0
10,590
I do program professionally, though only for a decade, but, I'm sorry if don't speak to your greatness. I'm tired of encountering people calling themselves programmers but they, for some reason, need a super specific set of tools in order to anything. As I said in my advice I only suggested he do it at first to get familiar with the underlying tools he's using, and no, I didn't go anywhere near "start with binary, noob" so I don't appreciate that mischaracterization. Conceptually, that advice is solid and the OP can take it and apply it anywhere and should excel if they want to. So, to say it's flawed is, frankly, wrong.

Re: binary, most people I know professionally could break an application down to IL, then assembler and then binary and understand that flow through a computer system. So, to start at binary? Absolutely even if it's only to understand how that process works. If you can't understand how that process works and other basic ones like it then you have no business trying to write software for other people. You're a hazard who knows just enough to be dangerous and is little better than being a script kiddie.

It's no different than calling yourself a chef and not understanding how the separate ingredients work and instead relying on pre-packaged units for predetermined meals. Or, calling yourself an architect without understanding how the ground your building will be on affects a structures integrity. Or, calling yourself a pilot without being able to plot a course by hand in case your instruments fail. Or, calling yourself a doctor without understanding basic cellular biology.

I guess I should point out I'm differentiating between being a programmer and being someone who writes programs. They are large differences between the two. And, frankly, from a professional perspective I'm having a hard time believing I'm getting gruff from someone who's "done it more than 20 years" for advice to start with the basics before you rely on automated tools to carry you. If you really have been a programmer that long, then you, sir, quite probably did start with binary and assembler and with little effort should be able to see how that knowledge and experience has made you a better programmer over the years as you've, hopefully, changed and grown as our profession has done. Don't deny someone else the same opportunity to actually be competent.
 

Sunius

Distinguished
Dec 19, 2010
390
0
19,060
So everyone who uses IDE is not competent? Come on man, how can learning compiler tags be useful to some one who does not know what a variable is? Compiling by hand is a burder which a newcomer should not bother with. Tags will be learnt in time, there are more important things to learn first.
 

Sunius

Distinguished
Dec 19, 2010
390
0
19,060



 

ex_bubblehead

Distinguished
Moderator
What happens when that fancy IDE environment breaks and the only way to get a project out is to drop down and do it by hand? Those that only know how to point-and-click become hopelessly lost and totally useless (think the ones behind the fast food counter that can't make change when the POS system crashes and no longer calculates it for them).

I'm with Majestic on this one.
 

majestic1805

Honorable
Oct 1, 2012
69
0
10,590

Neither of those equates to "everyone who uses IDE is not competent." My advice on compiling by hand was only to start with so you're not dependent on the IDE to compile for you. Even if all you learn as a result is the location of the compiler directory is enough to accomplish this. Would you advise someone go forward in ASP.NET without learning HTML? I highly doubt it and I see those two situations as very similar.