• 0

I'm really getting frustrated.


Question

Hello everyone.

 

I have been trying to learn how to program in multiple programming languages (Python, Ruby, PHP, Visual Basic, C++, JAVA, C#, C.) but I have picked up none of these languages. I have been looking for books for quite a long time, I've been trying hands-on books, I've been trying For Dummies books, Heads First, etc, but I haven't gotten further than writing Hello World.

 

What my major issue is that I do not understand any of the technical terms, even after Googling them. What happens is that I get a book on C# for example and I pick it up for a little bit, then something that I don't understand comes up and I'm practically forced to give up.

I'm an IT student and I would like to have some programming experience before next year. I am really interested in C#, C++, C and JAVA but I have not found anyone or anything that can help me, even after taking a course in Visual Basic (Which I miserably failed).

 

Could anybody show the ropes to an absolute idiot? I'm just looking for definitions on all the technical stuff which is in English, not in technical terms.

 

Thank you so much.

 

ShellBox.

Link to comment
Share on other sites

203 answers to this question

Recommended Posts

  • 0

Hello,

Never, ever, in my life have I written pseudo code for a project (outside of school, of course).

I read this thinking "this guy has never programmed a large scale project then I read:

I do, however, made tons of sketches laying out the different layers of the project (from the GUI all the way to the communication with the DB), also sketching the DB model.

And I laugh :laugh: Do you even know what pseudo code is?

 

Good one. But, why the hate for Java?

One of the worst implementations of a language in the world. And this is from someone who works daily with Java. Java shouldnt have been born.

We aren't talking about Java for Android that has gotten popular, no no. Desktop. I don't think I have anything installed that is coded in Java because that's how disgusting it is: When something is coded in Java, you usually see it. BRB Im gonna barf...

 

If you create anything complex, you normally sit down and do some form of design first. It may not be out right pseudo code and it may not even be a formal process, but it's for the same purpose.

Exactly. Pseudo code isn't writing code in english, its explaining in english what you are going to do or what your code is going to do. This is a very important and necessary step in programming, overall large projects.

What can happen in a large project is that you start coding like a animal and hit a brick wall. And you have to rewrite all of your program over again because you should have done it another way.

  • Like 1
Link to comment
Share on other sites

  • 0

Yea, I did not quite get why he'd say that. Never used assembly professional in my life, never did I had the need to.

And similarly, the majority of professional programmers simply have no need to use C either. That's the point: just because you think someone needs to use something doesn't mean that's a good argument for someone to learn it as a beginning language.

 

 

Required? No. It certainly helps from my experience though. As I said, easy is subjective. That's just my interpretation.

 

I like a barebones and simple experience without anything getting in my way, including the language. A terminal, text editor (vim), compiler (GCC/CLANG), and debugger (GDB) are all I need.

"Easier" for a novice is not subjective here. This isn't a matter of opinion. I've repeatedly told you that it is inherently easier to use existing libraries than to make libraries with the same functionality yourself by hand. This point isn't arguable. It would be like arguing that it is easier to create and design a phone yourself than to use an existing phone. One inherently requires you to gain more knowledge than the other. You haven't addressed any of this. You just keep repeating how C easier because it doesn't have existing libraries to learn while at the same time making the argument that C is better because you have to (1) implement the functionality that those missing libraries would provide by hand, and (2) Learn the dirty details that are abstracted away from you in high-level languages. You are making arguments that show C is the opposite of easier and then just keep saying C is easier anyway. And now you are making and even poorer argument: throwing llvm/gcc/gdb/vim/emacs into the mix does not make things easier for a novice. They are all things that the novice programmer has to specifically go out of their way to learn and understand in detail separately, as well, additionally learning how to use CLI (and Linux in some of those cases). They are easy for you because you already know them, but the novice programmer does not. So instead of learning programming, the user is focused on learning a ton of other misc. things. This equates to throwing the novice programmer off the deep end and telling them to struggle to swim. These are the things that real students struggle with in beginner CS courses and that get in the way of learning the fundamentals and the primary reason why curriculum has started to shift to higher level languages.

Link to comment
Share on other sites

  • 0

or that gcc creates a file called a.out.

Only if you don't provide an output file name parameter '-o bin' ;)

 

I found learning object-oriented tougher than structured, but I know the kids these days learn OO right out of the gate.  Not sure which I'd recommend, but if you're struggling, I'd be inclined to learn something structured first.

OOP is definitely more complicated, especially once you get into multiple inheritance, polymorphism, and operator overloading. It can really obfuscate a code base. GTK and GLIB are quite interesting because of the fact that they prove that OO concepts like classes and inheritance can be implemented efficiently in C as well.

Link to comment
Share on other sites

  • 0

OOP is definitely more complicated, especially once you get into multiple inheritance, polymorphism, and operator overloading. GTK and GLIB are quite interesting because of the fact that they prove that OO concepts like classes and inheritance can be implemented efficiently in C as well.

The novice programmer is not doing any of these things out of the gate. These are concepts that you learn later. These wouldn't even be topics in a beginner CS course that used a high-level language with OOP constructs. You learn the basics and use the functionality provided. You don't start out designing inheritance relationships between objects.

Link to comment
Share on other sites

  • 0

And similarly, the majority of professional programmers simply have no need to use C either. That's the point: just because you think someone needs to use something doesn't mean that's a good argument for someone to learn it as a beginning language.

 

Gotta respectfully disagree here.  Very few C++ programs have no C in them, rightly or wrongly, and C++ is an absolute must of any professional programmer.

 

As for whether C/C++ is a good starting point?  That's a debate that I won't wade into because it can go on forever.

The novice programmer is not doing any of these things out of the gate. These are concepts that you learn later. These wouldn't even be topics in a beginner CS course that used a high-level language with OOP constructs. You learn the basics and use the functionality provided. You don't start out designing inheritance relationships between objects.

 

Gotta respectfully disagree with this one, too.  I worked at a college in Toronto that taught OOP in its first year intro to programming course, and zero structured.  First semester included polymorphism and operator overloading and the like (again, rightly or wrongly), but not multiple inheritance.

Link to comment
Share on other sites

  • 0

Learn C first, that should be a must, then upgrade to C++, then move on from there. Understanding programming also requires logical thinking, I tried my stint in college at programming wasn't very good, just not my cup of tea per se, I switched to computer networking and excelled at that. After college I got a good job using my networking and computer hardware skills, while most of my fellow classmates from programming ended up getting jobs as web programmers and not making much money at it.

 

But anyhow in College we were taught C first, then old school Assembler Language. From what I've seen on Python looks to be easy too.

Link to comment
Share on other sites

  • 0

One one thought, actually... If "programming" isn't your thing but you want to do something computer programming-esque, you might like database.  That's not to say that won't require any programming skills, it will, but the programming is much simpler, and being a DBA is often more lucrative than programming.

Link to comment
Share on other sites

  • 0
 
 

Learn C first, that should be a must, then upgrade to C++, then move on from there. Understanding programming also requires logical thinking, I tried my stint in college at programming wasn't very good, just not my cup of tea per se, I switched to computer networking and excelled at that. After college I got a good job using my networking and computer hardware skills, while most of my fellow classmates from programming ended up getting jobs as web programmers and not making much money at it.

 

But anyhow in College we were taught C first, then old school Assembler Language. From what I've seen on Python looks to be easy too.

You can learn logic in any language.

 

I'm highly against people who say "learn C then move to C++". It's the most archaic form of thinking in the programming world. Because C is so bare bones, it's very easy to get frustrated having to roll your own functions for almost everything and it takes away from the learning and more importantly the fun aspect of programming for a lot of people.

 

A more modern language with a robust library would be better. You don't have to worry about missing functionality that you'd expect to be there, and they are much better for stepping stones. C is 'oh i want to do XYZ, but C doesn't have XYZ function, so I have to learn how to do XYZ with the available libraries'. However, in modern language it's more of 'oh I want to do XYZ so i will use ABC function. now that I've learned more programming, how about i create my own version of ABC for fun.'

Link to comment
Share on other sites

  • 0

Hello,

Learn C first, that should be a must, then upgrade to C++, then move on from there. Understanding programming also requires logical thinking, I tried my stint in college at programming wasn't very good, just not my cup of tea per se, I switched to computer networking and excelled at that. After college I got a good job using my networking and computer hardware skills, while most of my fellow classmates from programming ended up getting jobs as web programmers and not making much money at it.

 

But anyhow in College we were taught C first, then old school Assembler Language. From what I've seen on Python looks to be easy too.

This is typical college; Both C (unless you are getting in certain areas) and most certain assembly get you nothing in the real work. Everything today is OOP. C shows you the base of programming but that's it.

Python like I said about 5 times already is more of a scripting language. Not that that's a bad thing or good but I think complied would be better.

BTW, we have completely gone off topic. I suggest heavy editing to this thread to focus on what OP wanted and we can see his code...

One one thought, actually... If "programming" isn't your thing but you want to do something computer programming-esque, you might like database.  That's not to say that won't require any programming skills, it will, but the programming is much simpler, and being a DBA is often more lucrative than programming.

DBA has its logical thinking problem. Its way more difficult on the brain than "Hello World" I highly suggest he doesn't get in to this world. I laughed when he mentioned that the only thing he knows about SQL is exploiting databases...
Link to comment
Share on other sites

  • 0

Gotta respectfully disagree here.  Very few C++ programs have no C in them, rightly or wrongly, and C++ is an absolute must of any professional programmer.

If you think most professional programmers are doing low-level programming, you are mistaken. The gaming industry is what percentage of programmer jobs? It would be like me arguing that C is prevalent for professional programmers because it is primarily used in HPC (it IS but I'm not under the illusion that the rest of the industry typically uses it). At the undergraduate university level, they've stopped requiring C in a number of universities (Delaware, Rice, MIT...) -- you learn it as an elective if you choose to take specific courses. Why? Because businesses who are looking for new recruits want higher level languages in applicant resumes because high level languages drastically shortens development time and effort and simplify the software engineering and design aspects inherit with large scale projects. When I was an undergraduate, we used C, but now intro courses are done in python and the higher level courses are Java based unless you are doing systems programming. That's the shift I've seen in the last 5 years.

 

 

Gotta respectfully disagree with this one, too.  I worked at a college in Toronto that taught OOP in its first year intro to programming course, and zero structured.  First semester included polymorphism and operator overloading and the like (again, rightly or wrongly), but not multiple inheritance.

That's simply bad practice unless it was advanced topics covered after the fundamentals -- then I can see that being case.

 

 

Hello,

This is typical college; Both C (unless you are getting in certain areas) and most certain assembly get you nothing in the real work. Everything today is OOP. C shows you the base of programming but that's it.

Universities are starting to migrate away from C for that reason from what I've seen

Link to comment
Share on other sites

  • 0

This is typical college; Both C (unless you are getting in certain areas) and most certain assembly get you nothing in the real work. Everything today is OOP. C shows you the base of programming but that's it.

Shoot I wish they taught me C when I was in college.. back then it was CoBOL and RPG (this was late 70's), you can guess how useful that was in the real world. Best money I wish I never spent. But nowadays, I rarely touch C either, for my "typical application", can be much more productive elsewhere and finish in a fraction of the time. (Languages evolve for a reason..) That said, to the OP, C# is a solid pick personally.

Somewhat disagree about Python though -- for me anyway, it really depends on the situation, sometimes it's absurdly handy for banging out code quickly and reliably, and it's very flexible. I've done some fairly complex things with it, and there are real world examples that concur. Most certainly situational though.. it definitely wouldn't be my first pick for anything with a GUI or is processor intense for example. But for learning? Absolutely, has all sorts of modern elements, it's interactive so you can even mess with it in real time, buckets of support/documentation, very easy to read, no reinventing wheels every time you want to do something (a library probably exists for it), runs on everything, etc.

Link to comment
Share on other sites

  • 0

How did a rant on trying to learn 5 languages at once turn into 8 pages...

Because the topic turned to what language a new programmer should learn and everyone disagrees. The OP has decided to learn C# and last asked for information about what is meant by programming fundamentals and I gave him links that discuss some basic C# concepts and control mechanisms. That's where the OP is at right now from my understanding.

Link to comment
Share on other sites

  • 0

I leave it up to the experts, I'm not a programmer.  or am I because I know HTML :woot: . I actually had somebody tell me that once, that they were a programmer because they knew HTML and some Javascript.  :/ 

Link to comment
Share on other sites

  • 0

Hello,

Universities are starting to migrate away from C for that reason from what I've seen

About time.

 

 

Shoot I wish they taught me C when I was in college.. back then it was CoBOL and RPG (this was late 70's), you can guess how useful that was in the real world.

AFAIK, C, Cobol, and Pascal were typical first time programming. I was first taught Pascal.

But nowadays, I rarely touch C either, for my "typical application", can be much more productive elsewhere and finish in a fraction of the time. (Languages evolve for a reason..) That said, to the OP, C# is a solid pick personally.

I mean I personally think its a shame C is the state it is in but at the end of the day time is money and most of what you want to do, can be done in a newer, modern, and faster language.

Somewhat disagree about Python though

Python was made as a scripting language so Im commenting from its intention purpose and goal. There are awesome Python programs that I was surprised to be written in Python so......I have no problem with Python. Might be something I do today: Try out Python :)

 

 

How did a rant on trying to learn 5 languages at once turn into 8 pages...

Well, a lot got lost on the way to helping OP.....

 

 

I leave it up to the experts, I'm not a programmer.  or am I because I know HTML :woot: . I actually had somebody tell me that once, that they were a programmer because they knew HTML and some Javascript.  :/

You are a expert at web designing. I work with HTML, JavaScript, PHP and Java on a daily basis. I hate both Java(family) and if I would have to pick between HTML and PHP, Id pick AJAX :p (hate JavaScript, love PHP)
Link to comment
Share on other sites

  • 0

Hello,

I read this thinking "this guy has never programmed a large scale project then I read:

And I laugh :laugh: Do you even know what pseudo code is?

 

 

 

Calm down there, kiddo. No need to offend others.

I do what I say I do as a daily job; and I've seen extraordinary large projects. Pseudo code is only used when teaching programming. Most of the projects I've worked on we used a lot of analysis (functional analysis, business analysis etc) but never were functions etc written out in pseudo code.

Try to not jump to assumptions next time.

Link to comment
Share on other sites

  • 0

Gotta respectfully disagree here.  Very few C++ programs have no C in them, rightly or wrongly, and C++ is an absolute must of any professional programmer.

 

As for whether C/C++ is a good starting point?  That's a debate that I won't wade into because it can go on forever.

 

Gotta respectfully disagree with this one, too.  I worked at a college in Toronto that taught OOP in its first year intro to programming course, and zero structured.  First semester included polymorphism and operator overloading and the like (again, rightly or wrongly), but not multiple inheritance.

 

I do actually have a book on C++ but I don't really understand much of it because it seems quite confusing and hard although C++ is one of my main goals. 

 

I'm getting seriously confused with all these libraries and polymorphism and memory allocating and whatnot.

Link to comment
Share on other sites

  • 0

Hello,

I do actually have a book on C++ but I don't really understand much of it because it seems quite confusing and hard although C++ is one of my main goals. 

 

I'm getting seriously confused with all these libraries and polymorphism and memory allocating and whatnot.

Ignore everything else said in this thread and stick with your choice of C#.

Have you done anything? Do you have any questions? Please post code.

Link to comment
Share on other sites

  • 0

Hello,

Ignore everything else said in this thread and stick with your choice of C#.

Have you done anything? Do you have any questions? Please post code.

 

I've found an eBook which is kind of useful (Heads First C# 3rd edition) and they do explain things but still not what I need. I'm just curious to what polymorphism and memory allocating and everything in this thread means. 

I'm updating the OP with the VB code I wrote. I'm gonna try to convert it into C# and see what comes from it.

I can't update the OP so I'll do it here.

 

 

Public Class frmNightclub

 
 
    Private Sub btnOkay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOkay.Click
        Dim myAge As Integer
        Dim myGender As String
 
        myAge = nudUpdown.Value
 
        If rdbFemale.Checked = True Then
            myGender = "Female"
        Else
            myGender = "Male"
        End If
 
 
        MsgBox("This person is " & myAge & " And " & myGender)
Link to comment
Share on other sites

  • 0

Hello,

I can't update the OP so I'll do it here.

Public Class frmNightclub
 
 
    Private Sub btnOkay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOkay.Click
        Dim myAge As Integer
        Dim myGender As String
 
        myAge = nudUpdown.Value
 
        If rdbFemale.Checked = True Then
            myGender = "Female"
        Else
            myGender = "Male"
        End If
 
 
        MsgBox("This person is " & myAge & " And " & myGender)
Ok so what do you not understand about this code?

To comment, you dont need any variable for this code. At all.

Link to comment
Share on other sites

  • 0

Hello,

Have you every worked?

Trust me, you do pseudocode first. Always. Small time companies with small time programmers, have to think and write everything themselves.

Big time, such as banks, first have a software architect that thinks everything and discusses it with their senior programmers. Programmers just code (in their own way shape and form). A software architect doesnt give a damn if you used 3 variables instead of 2 but he does care that you fix your software and fixing it would be using 2 variables instead of 3.

Please post the code with comments.

 

What a load of nonsense.  I code daily, every weekday of every month for every year for the past 25 of the things.  I don't write pseudocode, and I don't know anyone in any of the firms I've worked in that does. You write program specifications that lay out the users requirements for the program, but writing psuedocode is just a time wasting intermediate step that no experienced programmer bothers with anymore.  It's an anachronism from an earlier age that still gets pointlessly taught in schools and colleges.

 

The only time I ever see it used is during job interviews, where at least there is does have some purpose.

 

No one does flowcharts anymore, either. ;)

 

If you're just being a good little robot and doing exactly what you're told, without engaging your brain in any meaningful manner then you're not a programmer, you're just a code monkey.  Such people are essentially useless when it comes to actual problem solving, and that is an essential skill any programmer worth employing, needs.

 

Maths are also pretty important for any programmer of meaningful ability.  You might not need it to construct basic applications, but once you get into decision making logic you're going to need it.  No, you don't need to be a math whiz, but you DO need to know how to derive mathematical formulae based on plain language descriptions of the required results. (ie: Taking an average of a range of data, or finding its highest or lowest values, or calculating a sales forecast based on historical sales data etc.  Can't do any of that without adequate math skills)

 

Regarding being "born to program".  I find that whilst anyone can learn to program given enough study; unless you have an aptitude for logic and problem solving, you'll never be more than a mediocre programmer.

Link to comment
Share on other sites

  • 0

Hello,

Ok so what do you not understand about this code?

To comment, you dont need any variable for this code. At all.

Yes you do. btnOkay and nudUpdown are not in the function and need to be defined as variables elsewhere. By not assigning myAge and myGender you paint yourself into a corner if you want to add to the function later. It will have to be rewritten if you just use the values assigned directly.

@OP: I'm not sure how much you've read up on C# yet but a few hints on differences for porting:

- classes and functions are wrapped in curly brackets {}

- keywords are type-sensitive and do not automatically get their capitalization autocorrected so you would have to use "public class" rather than "Public Class"

- the button handler needs to be created in the class constructor (btnOkay.Click += btnOkay_Click)

- C# concatenates strings using the + operator rather than &

- = is used for assignments, == is used for comparisons

I was going to post your class converted but I thought you might like to try it yourself first.

Link to comment
Share on other sites

  • 0

There's a typo in Eric's post.

  • == is used for comparisons (your 'if' statement)
  • = is used for assignment ('myGender ='). 

Adding this just to avoid OP confusion, not to correct Eric.  I've got a sneaking feeling he already has a handle on this. ;)

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.