• 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

Recommended Posts

  • 0

Those are very specific fields that deal with math like that. And even then, it doesn't occupy most of the programming time. I've done polygon and geometry related programming, mostly to do with games, and it wasn't what I'd call heavy math. It's the simple stuff you can learn in an hour on the web / wikipedia.

 

I think John Carmack said it best at Quakecon:

 

 

And that's the guy from id software who pioneered games programming. Yes if you're writing game engines from scratch you're going to encounter some basic geometry, but nothing too hard. Most of the algorithms for things like that have already been written anyway.

 

well, if you are going to program an accountable software then math is going to be your friend; an small simple game that recalculates the position of the mouse cursor does use math (although like Carmack said, you can use the properties of an object of a mouse class and don't care what or how it does, but it uses math none the less); even if you are coding a simple game level then the spacial notions should be one of the basic fundamentals and it all relates to math; simple or more academic but math.

Link to comment
Share on other sites

  • 0

What I mean is the API itself doesn't translate. The libraries themselves are different, and so the programmer must learn each one anew. They are often sprawling and organised differently. It's not impossible to learn each, but I wouldn't personally recommend it to someone new to programming. I'd go with a language that has the smallest number of concepts and a similarly small library. C also happens to be what a lot of other languages are based on, C#, C++, Java, for example.

The API is different but the basic functionality provided isn't. I gave you  good examples of that: maps/dictionaries, list, sets, etc. all exist in Java/C++/.net. For another example, if you were talking about multithreaded code, threading concepts are the same regardless of language. API isn't really important, the concepts are. I would not go with C as a new programmer because 95% of what you will end up doing is reinventing the wheel and that's not good use of  time. It's things like, instead of using an existing data structure, you are making a data structure that is analogous to one that already exist in other languages. As a new programmer, you wouldn't know because you probably didn't learn about data structures in the process of learning C.

 

I agree that the concepts of OOP are the same across languages, I even said that myself with classes. Void is very much idiomatic though and means different things in different languages, not existing at all in some.

Doesn't really matter if it exist as a keyword. It's a concept that exist with or without the keyword and that's the important part.

 

 

On the math question, how many programmers design completely new algorithms which aren't based on work already done? Take hashing and encryption for example. The only people writing completely new algorithms are trained specifically for that field - Mathematicians and Cryptologists. Regardless of the origin of CS, most programmers today aren't either of those. 

:huh: I don't where you are getting that mathematicians/cryptologists are the only ones who care about mathematics or write algorithms. That's a pretty bold statement and it's simply untrue. Computer Science is a sub field of applied mathematics. ANY programmer who is working in a field that cares about performance also cares about algorithms and algorithmic complexity because those are crucial for performance. That's basically the majority of CS graduate students. If you look, you'll see that CS curriculum is designed around math theory. It's a requirement to take various logic and algorithms courses; as well as, calculus based linear algebra, etc. The one thing you are getting if you get any sort of degree in CS is a whole lot of mathematical background. You may not know how to program at the end of it, but you certainly know a thing or two about math. 

 

 

Those are very specific fields that deal with math like that. And even then, it doesn't occupy most of the programming time. I've done polygon and geometry related programming, mostly to do with games, and it wasn't what I'd call heavy math. It's the simple stuff you can learn in an hour on the web / wikipedia.

 

I think John Carmack said it best at Quakecon:

 

 

And that's the guy from id software who pioneered games programming. Yes if you're writing game engines from scratch you're going to encounter some basic geometry, but nothing too hard. Most of the algorithms for things like that have already been written anyway.

 

So, fundamentally your argument is that because John Carmack said that there isn't much science in the gaming industry that there isn't much science in Computer Science? That's basically an unsound argument. He IS right about the gaming industry. Most of the programmers there are doing low-totem work, bug testing, etc. It isn't the most lucrative career. He also isn't even talking about mathematics in particular, he is just talking specifically about science.

Link to comment
Share on other sites

  • 0

:huh: I don't where you are getting that mathematicians/cryptologists are the only ones who care about mathematics or write algorithms. That's a pretty bold statement and it's simply untrue. Computer Science is a sub field of applied mathematics. ANY programmer who is working in a field that cares about performance also cares about algorithms and algorithmic complexity because those are crucial for performance. That's basically the majority of CS graduate students. If you look, you'll see that CS curriculum is designed around math theory. It's a requirement to take various logic and algorithms courses; as well as, calculus based linear algebra, etc. The one thing you are getting if you get any sort of degree in CS is a whole lot of mathematical background. You may not know how to program at the end of it, but you certainly know a thing or two about math. 

 

giphy.gif

In my course we also have Physics because a man can't live just with Math!

  • Like 2
Link to comment
Share on other sites

  • 0

 

In my course we also have Physics because a man can't live just with Math!

Oh yeah you are right, I forgot, there were CS majors in my initial physics courses as an undergraduate. I know mostly about the CS courses because the CS and ECE departments are closely tied together at my college (as they should be). Many of the course that I've taken fall under CS or are cross-listed because there is much overlap with computer engineering.

Link to comment
Share on other sites

  • 0

For another example, if you were talking about multithreaded code, threading concepts are the same regardless of language. API isn't really important, the concepts are.

I don't agree with that. The API's for multithreading across languages vary wildly, and so even if the concepts of mutexes, semaphores, and reentrancy apply across some of them, the way the programmer interacts with and uses them can be considerably different.

 

I would not go with C as a new programmer because 95% of what you will end up doing is reinventing the wheel and that's not good use of  time. It's things like, instead of using an existing data structure, you are making a data structure that is analogous to one that already exist in other languages

To me that's the beauty of C. There's no obfuscation, nothing hiding the details or implementation. I can control it exactly how I want. In the end, that's what programming is about. If your first language's library does associative maps, lists, trees, etc for you, what's the incentive to learn them or make your own? Learning data structures is at the heart of programming as far as I'm concerned, and to never learn them would be a travesty.

Besides, you can implement them once and reuse them in other projects. Not only that you can optimise them for your use cases. You don't get that with stock implementations. Their performance might not be optimal for certain cases.

So what happens when the programmer actually wants to create a new type of data structure? If he has no grounding in it he won't have a clue and will most likely go and look for an existing implementation. To me, that's a poor programming ethic that creates a dependence.

 

As a new programmer, you wouldn't know because you probably didn't learn about data structures in the process of learning C.

That's the first thing you do when you start learning C. Every C book or manual out there will have a data structures section. You can't learn C without learning data structures. And once you understand data structures, programming makes sense.

All those API's in Java, C#, and C++ are all based on the structured storage of data in memory. Even simple arrays are structured data. If you don't understand those concepts you're missing out on how things work in general.

 

Doesn't really matter if it exist as a keyword. It's a concept that exist with or without the keyword and that's the important part.

So what does 'Void *' mean to C# or Java then?

 

:huh: I don't where you are getting that mathematicians/cryptologists are the only ones who care about mathematics or write algorithms.

We all care about algorithms, just not that many of us create new ones, that's my point. Regardless, I stand by my statement that higher mathematics is not a prerequisite for learning programming, unless you plan on creating algorithms from scratch.

 

That's a pretty bold statement and it's simply untrue. Computer Science is a sub field of applied mathematics. ANY programmer who is working in a field that cares about performance also cares about algorithms and algorithmic complexity because those are crucial for performance.

You talk a lot about algorithms and performance. Which algorithms are you talking about exactly. I'd like to know what intimate knowledge of algorithms you deem necessary for starting programming. Some examples would be nice.

 

That's basically the majority of CS graduate students. If you look, you'll see that CS curriculum is designed around math theory. It's a requirement to take various logic and algorithms courses; as well as, calculus based linear algebra, etc. The one thing you are getting if you get any sort of degree in CS is a whole lot of mathematical background. You may not know how to program at the end of it, but you certainly know a thing or two about math.

The OP isn't a CS student. I'm not saying a grounding in math hurts, but I don't deem it a necessity to program unless one wants to do very specific fields of research.

That's my opinion anyway, and John Carmack appears to agree.

Link to comment
Share on other sites

  • 0

In my course we also have Physics because a man can't live just with Math!

Physics is just more interesting in general to me ;) At least what I've studied of it.
Link to comment
Share on other sites

  • 0

Well, for starters sorting.

 

The OP isn't a CS student. I'm not saying a grounding in math hurts, but I don't deem it a necessity to program unless one wants to do very specific fields of research.

 

Funny, a graduate in Math can understand and jump to programming quite easily, i have a few friends that are mathematicians but work as programmers / annalists in various fields of business, as they have the knowledge and mindset need for the job; on the other hand the lack of applied maths in programming can lead to a skills development halt; you might not need math do code a simple app, but it's going to be need it for performance reasons sooner or later.

 

Also we should not have this "programming is easy" type of mentality, but a "objective and excellence" type of mentality; there's enough of bad programmers out there :/

Link to comment
Share on other sites

  • 0

Hello,

1. Throw away all books, strip down the languages to just one - C.

OK, stop. C a starting language? Im sorry but someone that has difficulty learning and is JUST starting its easier for them to see a OOP language. Serves them better in the long run.

 

 

If you are really struggling to grasp the concept of programming then learn PASCAL.. it's a very good beginner language and prepares you for learning other languages.

Pascal, even if highly outdated, is the starting language for most schools (I started Pascal as well). I personally think VB .NET is even better to start off with but to each his own.
Link to comment
Share on other sites

  • 0

Well, for starters sorting.

I can't think of any math intensive sorting I've dealt with.

https://en.wikipedia.org/wiki/Sorting_algorithm#Popular_sorting_algorithms

Most of them are simply following a procedure. Unless you plan on creating some complex new mathematical based sorting, I don't see how math can aid one in implementing those pretty simple sorting algorithms above.

 

Funny, a graduate in Math can understand and jump to programming quite easily, i have a few friends that are mathematicians but work as programmers / annalists in various fields of business, as they have the knowledge and mindset need for the job; on the other hand the lack of applied maths in programming can lead to a skills development halt; you might not need math do code a simple app, but it's going to be need it for performance reasons sooner or later.

Depends what you're doing. If you're writing a database or network protocol app, it probably won't help much. Again, for me I rarely need to use maths when I program.

Also we should not have this "programming is easy" type of mentality, but a "objective and excellence" type of mentality; there's enough of bad programmers out there :/

Difficult to master, easy to learn the basics. That's the way I look at it. I'm constantly learning every day. That's what keeps it interesting :)
Link to comment
Share on other sites

  • 0

Hello,

OK, stop. C a starting language? Im sorry but someone that has difficulty learning and is JUST starting its easier for them to see a OOP language. Serves them better in the long run.

There are many more concepts in OOP languages. And often large built in libraries/API's. It can be overwhelming to a beginner. That was my logic.

And I disagree that it will serve them better in the long run. Let's take C# for example. You won't learn about creating data structures because you'll use the built in ones. So if and when you want to create a new one, or optimise an existing one, you won't have a clue where to start. I'm a big believer in starting from scratch. CS students get taught about how to create data structures, so why not a beginner to programming? Most books out there teach these concepts too. Why hide that essential information?

 

Pascal, even if highly outdated, is the starting language for most schools (I started Pascal as well). I personally think VB .NET is even better to start off with but to each his own.

I learnt Pascal in a Uni class. It's okay, but it's no fun writing a compiler using it :/ As you say it's outdated, so it's probably not a good idea. I haven't used VB since the VB 4/5 days, so I can't comment on the .NET version. It was good for knocking out apps quickly, I'll give it that.
Link to comment
Share on other sites

  • 0

I don't agree with that. The API's for multithreading across languages vary wildly, and so even if the concepts of mutexes, semaphores, and reentrancy apply across some of them, the way the programmer interacts with and uses them can be considerably different.

Really, don't get me started on multithreading, concurrency and parallel architectures is the field I work in. I brought up concurrency because I know I for a fact that the vast majority of most used languages (C, C++, .net, Java, ...) share the concepts of threading, locks, conditionals, mutual exclusion, so on so forth. They are not fundamentally different in even API. All most people do is spawn threads and join back to them most of the time with a bit of locking where needed. If you want to go down this route about how they are so different, I can pull the analogous structures up in each language. They really all do share the same functionality in almost the same form. The largest differences in API is C because it isn't an OOP language. It isn't as if you switch languages and suddenly fork/join parallelism and locking is out of the window and suddenly everything is drastically different.

 

 

To me that's the beauty of C. There's no obfuscation, nothing hiding the details or implementation. I can control it exactly how I want. In the end, that's what programming is about. If your first language's library does associative maps, lists, trees, etc for you, what's the incentive to learn them or make your own? Learning data structures is at the heart of programming as far as I'm concerned, and to never learn them would be a travesty.

Besides, you can implement them once and reuse them in other projects. Not only that you can optimise them for your use cases. You don't get that with stock implementations. Their performance might not be optimal for certain cases.

So what happens when the programmer actually wants to create a new type of data structure? If he has no grounding in it he won't have a clue and will most likely go and look for an existing implementation. To me, that's a poor programming ethic that creates a dependence.

So you argued that programming doesn't include math and now you are arguing that data-structures are the heart of programming. Data-structures are a form of algorithmic design. By definition you care about performance and optimization if you are making data-structures so this fundamentally falls into the math and science categories at this point.

 

I'm not arguing that you wouldn't want to do any of those things, but, as a new programmer you certainly wouldn't want to be doing algorithmic design if you barely have a grasp of basic programming concepts.

 

 

That's the first thing you do when you start learning C. Every C book or manual out there will have a data structures section. You can't learn C without learning data structures. And once you understand data structures, programming makes sense.

No, it is not the first thing you start learning when you learn C. The first thing you do when you start learning C is basic programming concepts and language fundamentals, as well as, memory management. In a curriculum, data-structures is something that is a mid-level course because it requires you to understand the fundamentals and have a foundation in math. You'd certainly never throw that into a 101 course or book.

 

 

So what does 'Void *' mean to C# or Java then?

Props for purposely convoluting a discussion about the concept of voidness in the context of a functions/methods into unrelated discussion about pointers. As I keep mentioning, the concepts are important NOT the keywords. A discussion of pointers is neither her nor there, as you well know.  :laugh:

 

 

You talk a lot about algorithms and performance. Which algorithms are you talking about exactly. I'd like to know what intimate knowledge of algorithms you deem necessary for starting programming. Some examples would be nice.

I already specifically mentioned algorithmic complexity to you. It has nothing to do with specific algorithms, but it has the world to do with understanding the performance of algorithms (and consequently data-structures) in general. Are you familiar with big-O notation for example? Pretty much any algorithm you find will have the big-O complexity listed for all of the different operations it performs.

 

Don't convolute argument, I never claimed that algorithm design is needed for starting out in learning programming.

 

 

The OP isn't a CS student. I'm not saying a grounding in math hurts, but I don't deem it a necessity to program unless one wants to do very specific fields of research.

That's my opinion anyway, and John Carmack appears to agree.

Let's be clear here: you said mathematics is not important for programming (that programming is 1% math). Everything that I said is an example of how mathematics IS important and a foundation for programming. Don't misrepresent Carmack's opinion as your own, he was NOT referring to mathematics and would likely disagree with your statement. As I already said, his comment was specifically about science.

 

 

I can't think of any math intensive sorting I've dealt with.

https://en.wikipedia.org/wiki/Sorting_algorithm#Popular_sorting_algorithms

Most of them are simply following a procedure. Unless you plan on creating some complex new mathematical based sorting, I don't see how math can aid one in implementing those pretty simple sorting algorithms above.

Have you actually used or designed any sorting algorithms? It's all about efficiency in terms of space and time... you even linked an article that talks about the space-time complexity of the algorithms themselves. Of course, if you just copy-paste an algorithm you aren't going to be "using" math to "implement" it. But you should be using the big-O complexities at the very least to figure out which algorithm to use in such a case, and that IS math based.

 

 

There are many more concepts in OOP languages. And often large built in libraries/API's. It can be overwhelming to a beginner. That was my logic.

And I disagree that it will serve them better in the long run. Let's take C# for example. You won't learn about creating data structures because you'll use the built in ones. So if and when you want to create a new one, or optimise an existing one, you won't have a clue where to start. I'm a big believer in starting from scratch. CS students get taught about how to create data structures, so why not a beginner to programming? Most books out there teach these concepts too. Why hide that essential information?

So according to what you are saying: using existing features from libraries is overwhelming to beginners, but designing and implementing the data-structures that make up those libraries is not as overwhelming? This doesn't make sense. It's fundamentally easier to use existing tools than it is to implement them yourself. If I've read your argument correctly, you are basically arguing that a low-level language is easier to use and learn than higher-level languages.

Link to comment
Share on other sites

  • 0

If I've read your argument correctly, you are basically arguing that a low-level language is easier to use and learn than higher-level languages.

 

lol then ASM is the way to go /s

note: i had a college that could actually read ASM so fast like you and i read English... he even advocated Assembly as the *real* language, when everyone was still using C++ and the new kid on the block, Java :D

  • Like 1
Link to comment
Share on other sites

  • 0

Depends what you're doing. If you're writing a database or network protocol app, it probably won't help much. Again, for me I rarely need to use maths when I program.

 

Network protocol? Then graph is your friend :)

Web design? Trigonometry and Geometry for the win (Fibonacci even helps alot - see some of the good designs and understand the math evolved).

Game AI without math? How?

3D graphics? yep, linear algebra sure does help.

 

And so on... You can, of course, NOT knowing any of it and still be a developer (why would a HTML/CSS need math for?)...but then again to be a good, optimal one you must have foundations in math (algebra does help in HTML/CSS, for example) as not only will give you the logic and critical thinking you will need but the knowledge for solving problems as well.

  • Like 1
Link to comment
Share on other sites

  • 0

Hello,

There are many more concepts in OOP languages. And often large built in libraries/API's. It can be overwhelming to a beginner. That was my logic.

How can System. and then whole bunch of self describing functions be confusing? In C, this help basically doesnt exist. Also, you stated a text editor. Yes, a text editor is good for most things but begineers nowadays always use your basic IDE.

And the concepts in OOP can be used in so many languages because most modern languages are OOP. All that I listed that are common and modern, C#, Java, VB .NET, etc are all OOP languages. C is the only one that isnt.

And I disagree that it will serve them better in the long run. Let's take C# for example. You won't learn about creating data structures because you'll use the built in ones. So if and when you want to create a new one, or optimise an existing one, you won't have a clue where to start. I'm a big believer in starting from scratch. CS students get taught about how to create data structures, so why not a beginner to programming? Most books out there teach these concepts too. Why hide that essential information?

Why do you want to learn creating data structures when there are built in ones? When changing your car's wheel, do you buy ones avaliavle or do you reinvent the wheel by designing and wasting your time? Modern OOP languages cut development time down DRASTICALLY. They arent as power as C (C++ for that matter which is also OOP) but they make development alot faster and easier.

 

I learnt Pascal in a Uni class. It's okay, but it's no fun writing a compiler using it :/ As you say it's outdated, so it's probably not a good idea. I haven't used VB since the VB 4/5 days, so I can't comment on the .NET version. It was good for knocking out apps quickly, I'll give it that.

VB and VB .NET have almost nothing in common. Have you touched a OOP language?
Link to comment
Share on other sites

  • 0

and out come the e-penises.

 

To the OP, it sounds like programming may not be for you if you have taken a VB course and not even got past "Hello World". 

 

If you are determined to learn something then you must go back to the absolute basics. This is where PASCAL comes in,it is taught in schools and colleges as an introduction to programming, it's extremely basic, i mentioned it earlier in the thread and some said it's not recommended... i massively disagree with this, it's true you wont make anything exciting and it's outdated but it's proven to give you the right mind set to take on other languages.

 

When you have grasped the basics you should then start looking at some web technologies.. put together a simple HTML web page, a little basic CSS and when you are comfortable with that start using a little PHP, real basic stuff like echo, if/else, foreach, arrays.. again you are not doing this to master the language or develop anything worthwhile, focus on nothing but the syntax and markup.

 

When you are comfortable with all of the above you should feel more at home tackling more advanced languages. Don't worry about problem solving and all the technical stuff until you are at a level where you can go back through your code and begin refactoring... Maybe take another look at VB at this point, I'm sure everything will be more clear for you.

Link to comment
Share on other sites

  • 0

Hello,

put together a simple HTML web page, a little basic CSS

Im gonna get flamed but its the truth: HTML and CSS is NOT programming.
Link to comment
Share on other sites

  • 0

Hello,

Lets get someone straight here: A programmer is a code monkey; He gets told what to do and does it.

Programmer analysts is a entire different story and usually doesnt even code.

In a career, (a real carrer job), almost everyone can be a programmer. You are told to do this and that and usually you do it with more or less ease. Now a analysts; Those are the ones that think it all up and write a huge pseudocode down.

In real life, most of use do both jobs as some businesses cannot afford or do not want two seperete deparments.

I think he can make a good programmer if he wants to but a analyst? Doubt it.

 

No, this is not how it works. No one bothers with pseudo code. Once you've moved beyond programming 101, it's faster to think in straight up code. Programmers aren't just following someone else's blueprint. They actually design (architect) first, then code.

 

Software architects are simply senior programmers that are in charge of the overall design. However, every programmer still has to make design decisions. Everyday, all the time. Programming is a design activity. It's not a construction activity.

  • Like 1
Link to comment
Share on other sites

  • 0

and out come the e-penises.

 

To the OP, it sounds like programming may not be for you if you have taken a VB course and not even got past "Hello World". 

 

If you are determined to learn something then you must go back to the absolute basics. This is where PASCAL comes in,it is taught in schools and colleges as an introduction to programming, it's extremely basic, i mentioned it earlier in the thread and some said it's not recommended... i massively disagree with this, it's true you wont make anything exciting and it's outdated but it's proven to give you the right mind set to take on other languages.

 

When you have grasped the basics you should then start looking at some web technologies.. put together a simple HTML web page, a little basic CSS and when you are comfortable with that start using a little PHP, real basic stuff like echo, if/else, foreach, arrays.. again you are not doing this to master the language or develop anything worthwhile, focus on nothing but the syntax and markup.

 

When you are comfortable with all of the above you should feel more at home tackling more advanced languages. Don't worry about problem solving and all the technical stuff until you are at a level where you can go back through your code and begin refactoring... Maybe take another look at VB at this point, I'm sure everything will be more clear for you.

 

I have written a new VB program yesterday purely out of boredom and I made an attempt at an IF statement. It does work for what I want it to do.

 

The thing is with the VB course I followed back then is that the teacher did not really understand what kind of help I needed and just bombarded me with information rather than taking it slowly. 

 

I can understand IF statements in Python and JavaScript and now VB so I believe it would work for me.

Link to comment
Share on other sites

  • 0

Hello,

No, this is not how it works. No one bothers with pseudo code. Once you've moved beyond programming 101, it's faster to think in straight up code. Programmers aren't just following someone else's blueprint. They actually design (architect) first, then code.

 

Software architects are simply senior programmers that are in charge of the overall design. However, every programmer still has to make design decisions. Everyday, all the time. Programming is a design activity. It's not a construction activity.

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.

I have written a new VB program yesterday purely out of boredom and I made an attempt at an IF statement. It does work for what I want it to do.

 

The thing is with the VB course I followed back then is that the teacher did not really understand what kind of help I needed and just bombarded me with information rather than taking it slowly. 

 

I can understand IF statements in Python and JavaScript and now VB so I believe it would work for me.

Please post the code with comments.
Link to comment
Share on other sites

  • 0

Hello,

How can System. and then whole bunch of self describing functions be confusing? In C, this help basically doesnt exist. Also, you stated a text editor. Yes, a text editor is good for most things but begineers nowadays always use your basic IDE.

And the concepts in OOP can be used in so many languages because most modern languages are OOP. All that I listed that are common and modern, C#, Java, VB .NET, etc are all OOP languages. C is the only one that isnt.

Why do you want to learn creating data structures when there are built in ones? When changing your car's wheel, do you buy ones avaliavle or do you reinvent the wheel by designing and wasting your time? Modern OOP languages cut development time down DRASTICALLY. They arent as power as C (C++ for that matter which is also OOP) but they make development alot faster and easier.

 

VB and VB .NET have almost nothing in common. Have you touched a OOP language?

 

For what it's worth, the first language that I was taught in university was C. C is a small language and that makes it a decent first language to learn. There are more concepts to learn once you introduce OOP. Note however, that you can also apply OOP design principles when coding in C.

 

As for text editors vs IDEs, that has no real bearing on learning the basic concepts. I would encourage the use of the simpler tool (arguably a text editor) if that helps in reducing the amount of new ancillary stuff that you have to learn.

 

Better to learn the basics, and that includes data structures. Once you know the basics, by all means move on to other concepts and learn how to do abstraction right.

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.

Hello,

Please post the code with comments.

 

Ah yes, I have worked. And have lead teams of programmers too. Thanks for asking.

Link to comment
Share on other sites

  • 0

Hello,

For what it's worth, the first language that I was taught in university was C. C is a small language and that makes it a decent first language to learn. There are more concepts to learn once you introduce OOP. Note however, that you can also apply OOP design principles when coding in C.

 

As for text editors vs IDEs, that has no real bearing on learning the basic concepts. I would encourage the use of the simpler tool (arguably a text editor) if that helps in reducing the amount of new ancillary stuff that you have to learn.

 

Better to learn the basics, and that includes data structures. Once you know the basics, by all means move on to other concepts and learn how to do abstraction right.

Heres the thing I thing some are missing: You can learn 100% and went to a university. He has stated that he has a learning disability. C has principal concepts that are very important not only to the language but also to programming. While this makes the language very powerful, it is also complicaded.

With OOP languages, this isnt really the case. You dont have to worry that much, even when making a big bigger projects (desktop side). Thats why I recommend he start with a OOP language.

Ah yes, I have worked. And have lead teams of programmers too. Thanks for asking.

I refer to work as in big, long term, time consuming scalable projects. Leading a team of programmers in making a calculator or a employee database, while someone has to do it, really isnt what we are talking about.

Anyways lets stay on topic and thats helping OP. I wanna see the code he wrote to see if we can comment anything.

Link to comment
Share on other sites

  • 0

Hello,

Im gonna get flamed but its the truth: HTML and CSS is NOT programming.

 

I don't disagree with that, i would call it 'developing'. 

 

I was just thinking of ways of breaking it down to the simplest form so the OP could grasp basic concepts and the markup and syntax would definitely help when using a language that is extremely easy to pick up.

Link to comment
Share on other sites

  • 0

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.

Why are you learning all these languages, or C#, if you can't even program in C/C++? It is critical you learn C first. All uni students doing computer science will.

 

Read this first: http://www.cplusplus...es/tutorial.pdf You won't be creating anything fancy, but it'll give you a good overview of programming structure. I personally read all of it over a few days. Don't worry about doing any of the examples on a computer - just understand the code on the page (which is well documented).

 

If you want to learn Python, I would highly recommend this: "Hello World!: Computer Programming for Kids and Other Beginners" http://www.amazon.co.../dp/1617290920/ Yes, it's a book for kids - but that's a good thing. Learning Python can't be simpler.

 

Dev-C++ is an excellent program to write basic C programs in: http://www.bloodshed.net/devcpp.html

 

Don't move onto anything graphical/object-oriented unless you understand C/C++ well. Once the latter is the case, you can move on to explore other languages. I would learn C, C++ and Python first (by just writing DOS-based programs - nothing graphical). Java and Visual Basic/C#/C++ would be the next (big) step. With a good understanding of C/C++, you should be able to pickup the material in various resources a lot easier. PHP is only useful if you want to get into web page design, and easiest to learn by example (once again, knowledge of C would really help).

 

Hint: google "<programming language> pdf" - for example, "java pdf" for some great (free) resources from various unis, etc.

 

Personally, I tried starting programming with the official Visual Studio 2005 Quick Start guide (freely distributed my Microsoft at the time - or perhaps it was a video series). I think I made some kind of weather app. However, it was an absolute waste of time because it didn't teach the fundamentals. It just told users the steps to make the app. It was only a few years ago when I read the C/C++ manual above that everything fell into place. I recently read a book on Xcode, and even though it was tricky in some places, I understood all of it, thanks to my knowledge of C/C++!

 

All the best!

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.