I am new to programming and picked up the following book by microsoft. I am taking Computer Science in college and would love to know if this is the correct step. I am very interested in how computer language works and wantto get into this a lot more. I've read countless articles on the net and ever went as far as asking what other people prefer as far as whats a good basic language to start with.

C# is a nice language -- if you already know C++. As a first language I think c++ could be easier and faster to learn then C#. If you have never learned a programming language before there are lots of concepts that C# assumes you know. An intro course in either C or C++ will give you a good background before delving into C#.

N.Wirth developed the language Pascal in the seventies (previous century) for learning how to program.You should have a look at it, but then move on to a C-style language as AD says. My personal favorite is C#, but as a beginner, start of with C. Two other languages worth considering are Java and Python.

Well I just spent 50$ on that book for C#, roughly how long should I spend on C or C++? Also what program should I use for C or C++? I get Visual Studio Pro since I am in school.

I would advice not to go to c or c++. I did that when I was at college. I picked a advanced c++ book and started learning some easy algorithms(I realised that i could have done that with c#). C# (Console Aplication) is where you should start and you ll find it pretty interesting believe me. Just go with c# for the time being and then switch to c or c++ or any other language, but I think you'll come back to c# when you see how Sweeter it is.
The point is that you should start SOLVING problems on your own no matter what language you pick. Once you get along with problem solving, then you can experiment with other languages and see what field interests you the most. When you choose your field see what is the best language to incorporate into that field.

I know a few people have told me to stay with C# but my only problem is where to start with it. I been reading this book religously.

As a first language I think c++ could be easier and faster to learn then C#. If you have never learned a programming language before there are lots of concepts that C# assumes you know.

Um...dafuq? How does C++ not have lots of concepts you're assumed to know? Further, no beginner should be expected to already know things, that's the whole point of learning. Regardless of which language one chooses, there will be a learning curve if one is new to programming.

I consider myself to be reasonably proficient with both C++ and C#. In terms of the languages, C# is friendlier and easier to learn. In terms of standard libraries, in general the C# libraries are easier to learn despite being more numerous. But one could argue that learning the .NET framework benefits C++ too if you're using C++/CLI.

If given the choice between only C++ and C# for a beginner to programming, I'd recommend C# as the first language.

Well I just spent 50$ on that book for C#, roughly how long should I spend on C or C++? Also what program should I use for C or C++? I get Visual Studio Pro since I am in school.

Honestly, it doesn't matter what language you start with. Just pick one and run with it. The lessons you'll learn will be valuable, and you can always switch to another language as you get a feel for your preferences and needs.

Since you already have a book, give it a month or two to see if you like C#.

Thanks deceptikon. I will stick with C# in hopes that I'll learn the just. I've heard a lot of people mention that no matter what your first language will be hard to understand because it's all new to you. I guess in the end it all boils down to personal preference.

Also when you would creat a project, did you use a flowchart and any pseudocode? I have things in my head that I'd love to start doing, but knowing if I should hold off due to it's complexity.. What were some of your very first applications/tools you created?

I've heard a lot of people mention that no matter what your first language will be hard to understand because it's all new to you. I guess in the end it all boils down to personal preference.

So if this helps you... im not a programmer by trade, actually a Windows server\network guy for many years now, i grew up learning BASIC back in the day. Didnt program for about 20 years after that, then had an interest in web development. For me, being a Windows guy, asp.net was a natural choice. Picked up asp.net and developed in vb.net and c# and was quick to learn at least the procedural type programming. hard a hard time with the concept of classes and objects. However, in my case, the early exposure to BASIC made a difference.

When looking at different languages now, while the syntax may be different, the concept is the same.

If you start with C# or any language, it is going to take some time to get your brain to learn the programming concepts. Once you have that, its a matter of learning the syntax.

So, i'm not the right person to advise you on software development/programming languages, but wanted to chime in and share my experience.

Thanks JorgeM, I've been playing with VB for a while now, but it wasnt until recent that I've taken a liking in programming. The syntak will be the biggest for me. Since I am new to it I've also found out that C# has reserved over 77 keyword identifiers, now I just need to figure out what they all mean.. I know the basics, like int, bool, if, and a few more.

Is it bad that my notebook for C# is much more fuller then all my other notebooks combined for all my other classes?

Also when you would creat a project, did you use a flowchart and any pseudocode?

Nope. For complex projects I'll draw out my idea of how it should all work together on a whiteboard, but for the most part I iterate the design as I go. After years of experience, I only rarely have to scrap large portions of code and start over anymore.

In team projects we have an initial design phase, then move into agile iteration from there.

I have things in my head that I'd love to start doing, but knowing if I should hold off due to it's complexity.

It never hurts to try. You'll learn quickly whether it's so far beyond your capability to manage, and the benefit of pushing your limits is that your limits increase with the experience.

What were some of your very first applications/tools you created?

The first useful ones were report filters and password generators. Everything else was just whatever came to mind as practice, and barring saved snippets for later use, most of what I wrote is lost to time. Though stuff I've posted online remains over a decade afterward. Some of it is embarrassingly bad to my current eye. ;)

Edited 2 Years Ago by deceptikon

Thanks again deceptikon. I guess I need to find my flow and start with something basic with a console app.

Did you ever do any reverse engineering for your code? Is it wrong to take someone elses code with permission and add/edit it to your liking? I guess that's how some artists feel..

Did you ever do any reverse engineering for your code?

Yup. I was doing it today. :) One of the best things about .NET is being able to decompile assemblies and learn how they work.

Concerning ethics, it's wrong to take something as a whole and claim it as your own. It's not wrong to investigate and learn from something, and it's not wrong to adapt what you learn in your own code.

As far as the artist mentality goes, I've seen both my libraries and raw code posted elsewhere online by others (programming style is very individual, and at a certain point you can identify your own code). It makes me happy that people found it useful enough to use it. I'm less happy when they say "I wrote this" when they clearly didn't, but that happens when you post stuff to the public domain.

i've been playing with VB for a while now,

while both vb.net and c# both compile to IL making them basically at par, I'd suggest you drop vb.net if you are new to programming and go with c#. The syntax, i've found, is comparible to other modern C style programming languages out there.

For example, i was helping a friend with some Java code, mind you, i have no Java experience, but because i've been developing in C#, i was able to help troubhleshoot and solve a problem (both in syntax and logic).

Is it bad that my notebook for C# is much more fuller then all my other notebooks combined for all my other classes?

I'd say that is a clear indication of the level of interest you have. its definately a good thing.

How does C++ not have lots of concepts you're assumed to know?

@deceptikon: I said C#, not C++. And the first thing in C# you need to know is the concept of classes. You can't write a simple Hello World program in C# without knowing something about classes.

@deceptikon, Can I ask what software you use for reverse engineering? I completely understand what you mean.. If I were to ever use anyones code I'd be sure to give credit where its due, even if I edited 90% of it.

@JorgeM. I use 99.99% of my time in C# I used VB in my younger days when I was trying to code for a game I use to play. I really have no desire to use VB anymore. I honestly can't fit enough into my head about programming.

@deceptikon: I said C#, not C++.

Yes, I know. And I also know that C++ throws new concepts at you willy nilly, especially if you're new to programming. The closer you get to modern C++, the worse it gets. It's the same story for any programming language, which was my point.

You can't write a simple Hello World program in C# without knowing something about classes.

By the same argument you can't write a simple hello world program in C++ without knowing something about includes, functions, namespaces, objects, and operator overloading. Or, as is common in education, you can call it boilerplate and learn the details later to the same effect.

@deceptikon, Can I ask what software you use for reverse engineering?

I currently use dotPeek for decompiling .NET assemblies. For native code I've nearly always used OllyDbg for disassembly. And various hex editors come in handy every now and again.

Edited 2 Years Ago by deceptikon

Thanks for the shares, I really found dotPeek useful.

So I got a small project due for class, a simple console app that will calculate the cost of a purchasing meal. The program will include decisions and loops.

I need to allow the user of the program to purchase Any Quanity of these items in one order.
Allow the user of the program to purchase One or More Types of these items on one order.
And finally after the order is placed, calculate total and add a 6% sales tax.

So far this is what I have

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Yum_Project
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("Please Enter Your First Name");
            string Write = Console.ReadLine();
            Console.Clear(); 
            string firstName = Write;
            Console.WriteLine("Please Enter Your Last Name");
            Write = Console.ReadLine(); 
            Console.Clear(); 
            string lastName = Write;
            Console.WriteLine("Hi " + firstName + " " + lastName); 
            Console.WriteLine(""); 
            Console.WriteLine("Enter 1 for Yum Yum Burger");
            Console.WriteLine(""); 
            Console.WriteLine("Enter 2 for Grease Yum Fries");
            Console.WriteLine(""); 
            Console.WriteLine("Enter 3 for Soda Yum");
            Console.WriteLine(""); 
            Console.WriteLine("Please Place Your Order Now"); 
            Console.ReadLine();
        }

    }
}

So far I am good, or so I think, the Console displays what I need, but now I am stuck with adding the code for quanity of each item, how does console know that "user" wants 15 Yum Yum Burgers with 15 Grease Yum Fries.

Lines 24-31 should be placed inside a loop. You will also need an option to exit (complete the order).

This article has been dead for over six months. Start a new discussion instead.