Learning Programming
-
Not sure if this is appropriate here. If not, feel free to move it. Since I spent considerable time teaching C# full time, I have been asked to help with mentoring here at work. We have someone at work with no programming experience who wants to get into C# programming. One objective would be to have the student actually build a working app tailored to what we do here at the office. Since there's not an established program or course, what would be the recommended path he should take? My suggstion would be: 1) Intro To Visual Studio - Show the basics of VS. Keep it simple. Just the major parts. Overview of Solutons and Projects. Explain the various project types. This is a one session lession. 2) Introduction to the .Net Framework. 3) C# Programming I. Basics of programming. Maybe something like this: http://www.csharp-station.com/Tutorial.aspx[^]. This would provice the basic building blocks of C# programming. 3) Intro to SQL. Databases, tables misc DB objects. Stored procs. Transact SQL. 4) C# Programming II. - ADO.Net - Linq To SQL - Interfaces - Threading - Reflection - Interop - Intro WPF - Intro WCF - Intro Silverlight - Intro ASP.Net 5) Courses specific to WPF, WCF, Silverlight, or ASP.Net I'm open to suggestion. Thanks
Everything makes sense in someone's mind
In my opinion you have a wide gorge between step 3 and 4. You might want to start out by deciding if those technologies are really necessary for the task in hand. I.e: Reflection, threading, WPF, WCF. Are they necessary? It's commendable that you want to teach the people all that, but if they're complete novices, what they really need is a grasp of basic C#, and then get some experience over time in that before they move on to these more advanced technologies. Throwing too much at people from the start can get them to give up... Just my opinion, no critscism. I think your project is very worth while...
1f y0u c4n r34d 7h15 y0u r3411y n33d 70 g37 14!d Gotta run; I've got people to do and things to see... Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... Da mihi sis crustum Etruscum cum omnibus in eo!
-
Not sure if this is appropriate here. If not, feel free to move it. Since I spent considerable time teaching C# full time, I have been asked to help with mentoring here at work. We have someone at work with no programming experience who wants to get into C# programming. One objective would be to have the student actually build a working app tailored to what we do here at the office. Since there's not an established program or course, what would be the recommended path he should take? My suggstion would be: 1) Intro To Visual Studio - Show the basics of VS. Keep it simple. Just the major parts. Overview of Solutons and Projects. Explain the various project types. This is a one session lession. 2) Introduction to the .Net Framework. 3) C# Programming I. Basics of programming. Maybe something like this: http://www.csharp-station.com/Tutorial.aspx[^]. This would provice the basic building blocks of C# programming. 3) Intro to SQL. Databases, tables misc DB objects. Stored procs. Transact SQL. 4) C# Programming II. - ADO.Net - Linq To SQL - Interfaces - Threading - Reflection - Interop - Intro WPF - Intro WCF - Intro Silverlight - Intro ASP.Net 5) Courses specific to WPF, WCF, Silverlight, or ASP.Net I'm open to suggestion. Thanks
Everything makes sense in someone's mind
I think it's a huge mistake to teach people SQL and ADO.NET before they have a good experience and understanding of C#, including winforms or WPF, whichever they will use. You don't see many SQL programs that are not GUI based.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
-
I think it's a huge mistake to teach people SQL and ADO.NET before they have a good experience and understanding of C#, including winforms or WPF, whichever they will use. You don't see many SQL programs that are not GUI based.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
Christian Graus wrote:
winforms or WPF
It could be webforms/mvc/silverlight if they prefer to build a web application, but I think as you that for novices, a winforms/wpf app would be the best for learning. I think that it's important not to mix more things into it than people actually need at this given time. To teach them everything at once will only confuse them...
1f y0u c4n r34d 7h15 y0u r3411y n33d 70 g37 14!d Gotta run; I've got people to do and things to see... Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... Da mihi sis crustum Etruscum cum omnibus in eo!
-
In my opinion you have a wide gorge between step 3 and 4. You might want to start out by deciding if those technologies are really necessary for the task in hand. I.e: Reflection, threading, WPF, WCF. Are they necessary? It's commendable that you want to teach the people all that, but if they're complete novices, what they really need is a grasp of basic C#, and then get some experience over time in that before they move on to these more advanced technologies. Throwing too much at people from the start can get them to give up... Just my opinion, no critscism. I think your project is very worth while...
1f y0u c4n r34d 7h15 y0u r3411y n33d 70 g37 14!d Gotta run; I've got people to do and things to see... Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... Da mihi sis crustum Etruscum cum omnibus in eo!
Thanks for your input. Bear in mind that this would all be written up in a series of coursework type projects. Each lesson would build on previous lessons. The student would first master C# Programming 1 before moving on. As far as the technologies needed, the goal would be to tailor any teaching towards what is necessary to make the student usefull to the company. We use WPF, WCF, Silverlight, and ASP.Net regularly, so an intro to each would give the student a taste of what to expect.
Everything makes sense in someone's mind
-
Not sure if this is appropriate here. If not, feel free to move it. Since I spent considerable time teaching C# full time, I have been asked to help with mentoring here at work. We have someone at work with no programming experience who wants to get into C# programming. One objective would be to have the student actually build a working app tailored to what we do here at the office. Since there's not an established program or course, what would be the recommended path he should take? My suggstion would be: 1) Intro To Visual Studio - Show the basics of VS. Keep it simple. Just the major parts. Overview of Solutons and Projects. Explain the various project types. This is a one session lession. 2) Introduction to the .Net Framework. 3) C# Programming I. Basics of programming. Maybe something like this: http://www.csharp-station.com/Tutorial.aspx[^]. This would provice the basic building blocks of C# programming. 3) Intro to SQL. Databases, tables misc DB objects. Stored procs. Transact SQL. 4) C# Programming II. - ADO.Net - Linq To SQL - Interfaces - Threading - Reflection - Interop - Intro WPF - Intro WCF - Intro Silverlight - Intro ASP.Net 5) Courses specific to WPF, WCF, Silverlight, or ASP.Net I'm open to suggestion. Thanks
Everything makes sense in someone's mind
Kevin Marois wrote:
someone at work with no programming experience who wants to get into C# programming
Kevin Marois wrote:
- Intro To Visual Studio - Show the basics of VS. Keep it simple. Just the major parts. Overview of Solutons and Projects.
If they are new to programming, don't get too much into this somewhat boring stuff that doesn't make much sense until other concepts are understood first. I didn't learn this very well until after I at least knew the basic syntax of the language I was working with. I say start with a Windows Forms application (pop up a "hello world" messagebox). Then maybe a console app (write a "hello world" line to output). Then go over the concept of variables. Get to user input early so he can make dynamic programs right from the start ("hello, Bob, what is your age?"). Then show how to make a webpage ("hello, Bob, this is ASP.net"). Once he has a very basic understanding of Windows Forms, console apps, and ASP.net applications, then indroduce the concept of libraries (DLL's). Make a "hello world" project that constructs a "hello, [name]" string using method parameters. Then make use of that project from a Win Forms app, a console app, and a web app. That would be a good time to explain how projects/solutions work, and how each project will output a DLL, EXE, or web files. Then introduce numbers and loops. Calculate the average age of all the ages entered by the user (Bob is 21, Sally is 34, Jake is 59, Beth is 43... they average an age of [whatever]). Then introduce data structures. Store ages in a list and calculate multiple values from that list by passing it to different functions. Then introduce file manipulation. Load names/ages from a text file. If this person has never programmed before, there is a lot of ground to cover. Gonna need time for all this to sink in. Don't get into the more complex stuff (LINQ, WCF, threading) until later.
-
Not sure if this is appropriate here. If not, feel free to move it. Since I spent considerable time teaching C# full time, I have been asked to help with mentoring here at work. We have someone at work with no programming experience who wants to get into C# programming. One objective would be to have the student actually build a working app tailored to what we do here at the office. Since there's not an established program or course, what would be the recommended path he should take? My suggstion would be: 1) Intro To Visual Studio - Show the basics of VS. Keep it simple. Just the major parts. Overview of Solutons and Projects. Explain the various project types. This is a one session lession. 2) Introduction to the .Net Framework. 3) C# Programming I. Basics of programming. Maybe something like this: http://www.csharp-station.com/Tutorial.aspx[^]. This would provice the basic building blocks of C# programming. 3) Intro to SQL. Databases, tables misc DB objects. Stored procs. Transact SQL. 4) C# Programming II. - ADO.Net - Linq To SQL - Interfaces - Threading - Reflection - Interop - Intro WPF - Intro WCF - Intro Silverlight - Intro ASP.Net 5) Courses specific to WPF, WCF, Silverlight, or ASP.Net I'm open to suggestion. Thanks
Everything makes sense in someone's mind
I think if they are new to programming then a basic tutorial of development may be in store before step 1 or 2. You can teach a lot about concepts, OO, classes, structures, etc, before they need to write code in VS. Honestly if I never coded, I would probably lose interest in step 1, or not have any clue what you are talking about in step 2. Perhaps there should be a fundamental step 0?
-
I think it's a huge mistake to teach people SQL and ADO.NET before they have a good experience and understanding of C#, including winforms or WPF, whichever they will use. You don't see many SQL programs that are not GUI based.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
Indeed, there needs to be a solid understanding of the fundamentals first, including some GUI stuff (that keeps interest piqued). I took me years to learn programming and the rest of that stuff. It seems a bit ambitious to teach it all at once.
-
Not sure if this is appropriate here. If not, feel free to move it. Since I spent considerable time teaching C# full time, I have been asked to help with mentoring here at work. We have someone at work with no programming experience who wants to get into C# programming. One objective would be to have the student actually build a working app tailored to what we do here at the office. Since there's not an established program or course, what would be the recommended path he should take? My suggstion would be: 1) Intro To Visual Studio - Show the basics of VS. Keep it simple. Just the major parts. Overview of Solutons and Projects. Explain the various project types. This is a one session lession. 2) Introduction to the .Net Framework. 3) C# Programming I. Basics of programming. Maybe something like this: http://www.csharp-station.com/Tutorial.aspx[^]. This would provice the basic building blocks of C# programming. 3) Intro to SQL. Databases, tables misc DB objects. Stored procs. Transact SQL. 4) C# Programming II. - ADO.Net - Linq To SQL - Interfaces - Threading - Reflection - Interop - Intro WPF - Intro WCF - Intro Silverlight - Intro ASP.Net 5) Courses specific to WPF, WCF, Silverlight, or ASP.Net I'm open to suggestion. Thanks
Everything makes sense in someone's mind
Imho, learning a programming language or technology (C#, ADO.NET, Windows Forms, WPF, Silverlight, WCF, etc.) has absolutely nothing to do with learning how to program. I recommend that a person who has no programming experience first grasp basic concepts. Eric Grisom's Intro to CS and Programming[^] is a great example of several free open courseware series of lectures on the subject. When I taught CS to undergrads in the 80s, my first lecture was a simulation of a
for
loop that used students as individual steps of the algorithm. This amusing (but valuable) exercise drove home several fundamental points on day one of the course, one of which was computers are very stupid. But very fast. /raviMy new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Indeed, there needs to be a solid understanding of the fundamentals first, including some GUI stuff (that keeps interest piqued). I took me years to learn programming and the rest of that stuff. It seems a bit ambitious to teach it all at once.
Thanks for your input. I think you're all missing something here. I didn't say that this would all be taught at one time. This all would be a learn-as-you-go kind of thing. No schooling is ever going to teach you what your own studying and experimenting will. This outline was simplu a guide to ensure that the important topics are covered in the right order. There is no timeline, and indeed, this would all take years to master.
Everything makes sense in someone's mind
-
Not sure if this is appropriate here. If not, feel free to move it. Since I spent considerable time teaching C# full time, I have been asked to help with mentoring here at work. We have someone at work with no programming experience who wants to get into C# programming. One objective would be to have the student actually build a working app tailored to what we do here at the office. Since there's not an established program or course, what would be the recommended path he should take? My suggstion would be: 1) Intro To Visual Studio - Show the basics of VS. Keep it simple. Just the major parts. Overview of Solutons and Projects. Explain the various project types. This is a one session lession. 2) Introduction to the .Net Framework. 3) C# Programming I. Basics of programming. Maybe something like this: http://www.csharp-station.com/Tutorial.aspx[^]. This would provice the basic building blocks of C# programming. 3) Intro to SQL. Databases, tables misc DB objects. Stored procs. Transact SQL. 4) C# Programming II. - ADO.Net - Linq To SQL - Interfaces - Threading - Reflection - Interop - Intro WPF - Intro WCF - Intro Silverlight - Intro ASP.Net 5) Courses specific to WPF, WCF, Silverlight, or ASP.Net I'm open to suggestion. Thanks
Everything makes sense in someone's mind
-
Thanks for your input. I think you're all missing something here. I didn't say that this would all be taught at one time. This all would be a learn-as-you-go kind of thing. No schooling is ever going to teach you what your own studying and experimenting will. This outline was simplu a guide to ensure that the important topics are covered in the right order. There is no timeline, and indeed, this would all take years to master.
Everything makes sense in someone's mind
Kevin Marois wrote:
This is a one session lession
I think that's what threw me off. Strange you would mention a single-day (assuming session means uninterrupted time period) activity and then other activities which may take years.
-
Ah, Boulder, Colorado - One of my favorite places in the world. You're really lucky if that's where you live... Really miss the Flatirons and the clear Colorado air...
1f y0u c4n r34d 7h15 y0u r3411y n33d 70 g37 14!d Gotta run; I've got people to do and things to see... Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... Da mihi sis crustum Etruscum cum omnibus in eo!
-
Ah, Boulder, Colorado - One of my favorite places in the world. You're really lucky if that's where you live... Really miss the Flatirons and the clear Colorado air...
1f y0u c4n r34d 7h15 y0u r3411y n33d 70 g37 14!d Gotta run; I've got people to do and things to see... Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... Da mihi sis crustum Etruscum cum omnibus in eo!
Totally agree, Its an awesome place to live/visit. I live in Thornton.
-
Kevin Marois wrote:
This is a one session lession
I think that's what threw me off. Strange you would mention a single-day (assuming session means uninterrupted time period) activity and then other activities which may take years.
No, I meant that you could do a brief overview of VS2010 and the .Net framework in one sitting. As I said in my post, I taught for a college for a while, and this was one of those topics that we breezed right through, because you're going to get immeresed in them by nature of learning and working in them. At this point, it's more of a starting point.
Everything makes sense in someone's mind
-
Totally agree, Its an awesome place to live/visit. I live in Thornton.
Right next door. I'm envious. I lived for a short while in Boulder, and if I should ever go to live anywhere in the States again, that would definitely be where I would want to be.
1f y0u c4n r34d 7h15 y0u r3411y n33d 70 g37 14!d Gotta run; I've got people to do and things to see... Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... Da mihi sis crustum Etruscum cum omnibus in eo!
-
Not sure if this is appropriate here. If not, feel free to move it. Since I spent considerable time teaching C# full time, I have been asked to help with mentoring here at work. We have someone at work with no programming experience who wants to get into C# programming. One objective would be to have the student actually build a working app tailored to what we do here at the office. Since there's not an established program or course, what would be the recommended path he should take? My suggstion would be: 1) Intro To Visual Studio - Show the basics of VS. Keep it simple. Just the major parts. Overview of Solutons and Projects. Explain the various project types. This is a one session lession. 2) Introduction to the .Net Framework. 3) C# Programming I. Basics of programming. Maybe something like this: http://www.csharp-station.com/Tutorial.aspx[^]. This would provice the basic building blocks of C# programming. 3) Intro to SQL. Databases, tables misc DB objects. Stored procs. Transact SQL. 4) C# Programming II. - ADO.Net - Linq To SQL - Interfaces - Threading - Reflection - Interop - Intro WPF - Intro WCF - Intro Silverlight - Intro ASP.Net 5) Courses specific to WPF, WCF, Silverlight, or ASP.Net I'm open to suggestion. Thanks
Everything makes sense in someone's mind
Don't forget: No matter what you decide todo, they will definitely need books to study and consult as handbooks for their work/assignments...
1f y0u c4n r34d 7h15 y0u r3411y n33d 70 g37 14!d Gotta run; I've got people to do and things to see... Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... Da mihi sis crustum Etruscum cum omnibus in eo!
-
I think it's a huge mistake to teach people SQL and ADO.NET before they have a good experience and understanding of C#, including winforms or WPF, whichever they will use. You don't see many SQL programs that are not GUI based.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
Christian Graus wrote:
You don't see many SQL programs that are not GUI based.
I see very few that are. But that's just me. I would definitely want to be sure that the student doesn't put data access in the UI layer.
-
Not sure if this is appropriate here. If not, feel free to move it. Since I spent considerable time teaching C# full time, I have been asked to help with mentoring here at work. We have someone at work with no programming experience who wants to get into C# programming. One objective would be to have the student actually build a working app tailored to what we do here at the office. Since there's not an established program or course, what would be the recommended path he should take? My suggstion would be: 1) Intro To Visual Studio - Show the basics of VS. Keep it simple. Just the major parts. Overview of Solutons and Projects. Explain the various project types. This is a one session lession. 2) Introduction to the .Net Framework. 3) C# Programming I. Basics of programming. Maybe something like this: http://www.csharp-station.com/Tutorial.aspx[^]. This would provice the basic building blocks of C# programming. 3) Intro to SQL. Databases, tables misc DB objects. Stored procs. Transact SQL. 4) C# Programming II. - ADO.Net - Linq To SQL - Interfaces - Threading - Reflection - Interop - Intro WPF - Intro WCF - Intro Silverlight - Intro ASP.Net 5) Courses specific to WPF, WCF, Silverlight, or ASP.Net I'm open to suggestion. Thanks
Everything makes sense in someone's mind
Kevin Marois wrote:
tailored to what we do here at the office
Do you really need another version of MineSweeper?
-
Kevin Marois wrote:
tailored to what we do here at the office
Do you really need another version of MineSweeper?
Don't be so judgmental - not everybody spends their entire time playing minesweeper! ....There's also Hearts and Freecell!
1f y0u c4n r34d 7h15 y0u r3411y n33d 70 g37 14!d Gotta run; I've got people to do and things to see... Don't tell my folks I'm a computer programmer - They think I'm a piano player in a cat house... Da mihi sis crustum Etruscum cum omnibus in eo!
-
Christian Graus wrote:
You don't see many SQL programs that are not GUI based.
I see very few that are. But that's just me. I would definitely want to be sure that the student doesn't put data access in the UI layer.
Well, you're dreaming. Seperation of concerns is a long way down the track from a basic course. Read the programming forums sometime.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.