• 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

You need to start with the start.

 

Before learning any language you need to learn how to code. You do the same mistake 99% of all amateurs do (and 98% of all of them think they are actually good while their code is bloated like hell).

 

Buy yourself some books about programming and computing.

 

1. Books about algorithms. The books talking about the algorithms and their complexity and how to properly write them. The book can use pseudo code it doesn't matter.

2. Books about object-oriented programming. The ones talking about the principles (inheritance, polymorphism, ...) not the languages.

3. Books about general best practices in programming.

4. Books about how to use an IDE if you can't figure it out by yourself.

 

Optional :

 

4. Books about UI. Something lot of devs in the open source world forget to do.

5. You should probably also know the ins and outs of the OS you are programming for. It's not bad to read at the very least a book about how computers work and how windows works.

 

Then you can start to learn a language.

 

Finally to be honest these days a good blog is often better than a not so good book.

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.

 

I think you are thinking of a software architect which you have described correctly. They design the frameworks and hand it off to someone to sit down and make the code. Can be compared to someone who makes blueprints for homes and contractors who do the work to turn the blueprint into a reality.

 

Problem is, its not that simple. Some people can't just look at a blueprint and make a house or look at a car's specs and perform auto work or take a framework given by a software architect and implement it. I don't care what anyone says; you can submerge yourself into a field for years and years and years but some people truly just...won't...get...it. Their brains are simply not wired to perform that task. Again, its not a bad thing and is what sets us a part from others. If everyone could do everything at the same level, this world would be a boring place.

Link to comment
Share on other sites

  • 0

You need to start with the start.

 

Before learning any language you need to learn how to code. You do the same mistake 99% of all amateurs do (and 98% of all of them think they are actually good while their code is bloated like hell).

 

Buy yourself some books abour programming and computing.

 

1. Books about object-oriented programming. The ones talking about the principles (inheritance, polymorphism, ...) not the languages.

2. Books about algorithms. The books talking about the algorithms and their complexity and how to properly write them. The book can use pseudo code it doesn't matter.

3. Books about general best practices in programming.

4. Books about how to use an IDE if you can't figure it out by yourself.

It doesn't matter if his code is bloated, he doesn't know OOP concepts, he doesn't use best practice, and he doesn't know algorithms/algorithmic complexity if he is struggling to even do basic tasks in a language or understand basic programming concepts. Learning these things would be like building a house without a base.

  • Like 1
Link to comment
Share on other sites

  • 0

As to the OP, here is basically the reality of things. Programming is a career you are born to do, not grow into. I know others will quote and debate me on this but I stick to what I've said. Some people just don't have the mindset required to grasp programming concepts and write quality software just as some people don't have the know how to work on a car or the precision to be a surgeon or the charisma of a salesman. While the OP may end up getting basic concepts, it may simply be one of those things that he just isn't meant to be good at. Its not a bad thing, we all have our own talents.

 

That is very true.

 

While I was at uni about 80% of students on my course struggled to understand basic programming, but they were great at other parts that I wasn't.

 

Some of them have gone on to do jobs in programming however, they're either rubbish at it and stress over it a lot or they just don't develop very good code.

 

 

Be interesting where he's at in a few months and if he actually managed to pick up anything. I'm sure he will find an area he likes and understands.

Link to comment
Share on other sites

  • 0

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.

 

what are you having problems with? the syntax? the libraries? how cpus/memory work? define what technical terms you are struggling with, then maybe we can help you.

Link to comment
Share on other sites

  • 0

A little advice would be pick ONE language. I recommend Java. There are examples for everything you will do online. Also if you expect to immediately jump into making a game or professional software you will be disappointed. You need to start with printing Hello World in the terminal. Then work to printing out a menu in the terminal and do things based on what the user types in. Like a 4 function calculator in the terminal. If you try to get ahead of yourself, you will fail.

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.

Unfortunately most books are pretty bad. The C# Yellow Book does an awesome job at explaining exactly what programming is. That one should get you further than Hello World. :)

 

Is there any particular term you need explanations on? There aren't that many concepts to understand just to get started.

Link to comment
Share on other sites

  • 0

I would like to reiterate the previously stated premise that you should have a task in mind before you jump onto the bandwagon. By that, I don't mean that your goal has to be to create the next big app in Google Play, but to have some possible task that will force you to focus on producing something that will give you a tangible sense of achievement.

That could be something completely meaningless to anyone else, but be worthwhile to you. You might want to search your hard drive for duplicate file names, create a text file of all the mp3's on your computer or make a pirate ship follow your finger around on a smartphone (I have a friend whose girlfriend likes pirates, so he made her a glyph tracing app accordingly, it could fire canons too).

Once you have that, you'll have a purpose for what you're doing and an incentive to succeed. Otherwise you are looking at loops, conditionals, classes, polymorphism etc. and it will have no relevance to you.

Forget C and C++ for the time being, the IDE' are heavy duty and intimidating and it won't help your confidence.

If you are going to have formal tuition next year, then I wouldn't worry too much about programming right or even fully comprehending Object Orientated methods. Python, Ruby, PHP and non-.net VB are good for that.

If your class is going to focus on Java then trying to get a head start in it has its advantages and disadvantages: familiarity vs. realising you had so much wrong.

As other has again said, start with console apps or web apps that manipulate HTML to achieve a goal. Forget about GUI paradigms for the time being.

Link to comment
Share on other sites

  • 0

1. Throw away all books, strip down the languages to just one - C. Throw away the IDE's, and grab a simple text editor like vim, emacs, or gedit.

 

2. Think of a useful program to write. Not one already in a book that you're read. Because all you're doing then is copying text that someone else has written (the most assured way to bore yourself to tears). Something simple will do. Say a program that counts the lines in a file, which can easily be expanded to characters, white space etc. Or a simple hasher that takes an input file and adds up the ascii values of the individual characters, mangles them a bit (rotating shift), and finally produces a 32 bit value (hash).

 

The point is to create a program without following guidelines, or referring to other peoples code. The most fun part of programming is problem solving and thinking of how things can be done. Simplicity is the key. Start off small by having your program extract the arguments / parameters passed to it - for example a file name as an input:

#include <stdio.h>
 
void
main ( int argc, char **argv )
{
       if ( 3 > argc ) {
           puts ( "Please provide an input file name including the path" );
           return;  
       }
 
       printf ( "Input file: %s\n", argv[2] );
}

Then take that file argument and open up the file and start doing things with it, like parsing it. Once you're comfortable with parsing, try storing its contents in data structures in your program. Then trying modifying them and writing them back out. It's fun and you learn important skills.

 

You have to think of your own programs to write though. If you only copy other people's code you'll never learn. Books can be useful, but playing around, making mistakes and learning from it is far far superior.

 

All you need is a terminal, and a text editor like the ones I mentioned above. No eyecandy tools or expensive software are needed to create software. I'd suggest starting with GNU/Linux because it's the perfect playground for programmers. Grab an Xubuntu iso, put it on a cd or pen drive. You don't even need to install it. You can write code from the live environment, though it's obviously better to install it in the long run.

 

3. All you need is a language reference. Man pages are usually all that I need for C. Open a terminal and type "man fopen" for instance. No fluff, just a simple api reference is good enough. That's all why I recommend C. Its library is very small and the syntax is simple and concise. Once you learn the few operators, keywords, and constructs like conditions, loops etc that's it. There's no massive api to learn.

Link to comment
Share on other sites

  • 0

Hello,

Well its the truth; I would like to be good at everything in the world and have a unlimited salary from marketing but its impossible because it is not in my ability nor can I or have the intrest in learning.

There are millions of fields in IT, so dont worry.

Also, do you know anything about SQL, OP?

 

The only thing I know about SQL is exploiting it to gain access to a website/database. 

I guess that the reason why I want to learn programming is because I want to be good at something and I love computers. I'm quite good at learning languages and programming languages combines my two favourite things into one. They both really interest me and just seem very "cool" to learn. I do know a little bit of programming (How to do basic if statements, declaring variables) etc.

 

I have also decided to learn C# as it is not very far from all the languages I'd like to learn like C++, JAVA, C, ASM (very long term goal, I know)

 

The thing is that I don't struggle to read English, I do struggle with terms like memory controlling, holding the memory and releasing it at the same time, etc. It just sounds like Chinese to me. 

 

What I'm basically asking is that someone explains to me the basic terms in C# like classes, what the "void" things mean above my code and what they do, etc. Just tell me what the mean and do in a simple way so that a child could understand. 

 

My brain does kind of understand what simple code does and how it works but I just need that little kick in the ass to be honest to start up. 

Thank you all so much. This is THE friendliest and most helpful community I have EVER found on the Internet.

1. Throw away all books, strip down the languages to just one - C. Throw away the IDE's, and grab a simple text editor like vim, emacs, or gedit.

 

2. Think of a useful program to write. Not one already in a book that you're read. Because all you're doing then is copying text that someone else has written (the most assured way to bore yourself to tears). Something simple will do. Say a program that counts the lines in a file, which can easily be expanded to characters, white space etc. Or a simple hasher that takes an input file and adds up the ascii values of the individual characters, mangles them a bit (rotating shift), and finally produces a 32 bit value (hash).

 

The point is to create a program without following guidelines, or referring to other peoples code. The most fun part of programming is problem solving and thinking of how things can be done. Simplicity is the key. Start off small by having your program extract the arguments / parameters passed to it - for example a file name as an input:

#include <stdio.h>
 
void
main ( int argc, char **argv )
{
       if ( 3 > argc ) {
           puts ( "Please provide an input file name including the path" );
           return;  
       }
 
       printf ( "Input file: %s\n", argv[2] );
}

Then take that file argument and open up the file and start doing things with it, like parsing it. Once you're comfortable with parsing, try storing its contents in data structures in your program. Then trying modifying them and writing them back out. It's fun and you learn important skills.

 

You have to think of your own programs to write though. If you only copy other people's code you'll never learn. Books can be useful, but playing around, making mistakes and learning from it is far far superior.

 

All you need is a terminal, and a text editor like the ones I mentioned above. No eyecandy tools or expensive software are needed to create software. I'd suggest starting with GNU/Linux because it's the perfect playground for programmers. Grab an Xubuntu iso, put it on a cd or pen drive. You don't even need to install it. You can write code from the live environment, though it's obviously better to install it in the long run.

 

3. All you need is a language reference. Man pages are usually all that I need for C. Open a terminal and type "man fopen" for instance. No fluff, just a simple api reference is good enough. That's all why I recommend C. Its library is very small and the syntax is simple and concise. Once you learn the few operators, keywords, and constructs like conditions, loops etc that's it. There's no massive api to learn.

 

I'm still trying to decide between C# and C. Thank you for the post but I didn't understand any of those terms.

Link to comment
Share on other sites

  • 0

Another thing I forgot to mention is that I have a very small background in maths. I've never gotten up to algebra because I dropped out of school before we got there. Will this give me a big setback?

Link to comment
Share on other sites

  • 0

I think some people are making some good points... but i don't think you are following.

 

Give an example... an actual example and tell us what it is. (that you are wanting to create)

 

Applications/Programs intended USE ultimately defined what language or very very very preferred language/Tech is used.

ie simple example is if you are wanting to create a MS Windows Desktop app only...and want the development simplified and you don't care about it being able to run on another OS then you will use MS WinForms.

 

Are you wanting to write a Web app/program or OS app/program.(for learning, you have to write something to learn)

 

Before i really say anything... about what I would do.... I would proffer to hear what you would like to create...

Like other have said.... start small.... don't say the next Facebook!

 

With this you can chose the best language for what you want to achieve.

 

I think c# is the best....and so is Java because they are basically the same... i mean really they are so similar! its crazy.

What is different is the IDE's and this is why I hate! Java... not because of Java as a language but because I have not found an IDE that i have liked yet... to be fair i haven't spent enough Time on the IDE for Java as there are so many(which is my problem with the IDE/s). So the language(Java) itself is nice I just am not a fan of the IDE(eclipse).

 

So we have a better understand as to where you are at please give an example.

eg.c# ---> what can you tell me about this.

------------------------------------------------------

public List<string> strings { get; set; }

------------------------------------------------------

 

Also for someone who says they have tired all the languages...as yourself I find that a little hard to believe as its quite hard to setup/know how to configure all the different environments/IDEs needed and supporting software.

 

Just so you know there is a Huge difference between c# and C.... C is a low level programming language... you don't really create Applications/programs at this level... you write frameworks* and as you are starting out, it would be stupid to even try to write a framework... as that is crazy complicated...and would just be a stupid starting point. I am a Analyst Developer  in dot.net c# and I don't know enough to Basically write ANYTHING in C. Hope this illustrates my point about forgetting about programming languages at that level for now.

 

so recap

 

1. tell us, what you would like to create.

2. based off 1, neowin forum will help you pick a Language.... as depending on 1, 2 will have preferences

3. Setup/Install the IDE for 2.

4. write hello world

5. think about how you intend to interface with it.

6. evolve your "hello world"

7. ask the question how do i now do x here in the forum when you get stuck? (keep this really short, one problem at a time)

8. try x with suggestions/guides.

9. read people suggestions.

 

programming is basically.....

 

if(something) {

   //something is true do this

}

else {

   //something is false do this

}

Link to comment
Share on other sites

  • 0

I have also decided to learn C# as it is not very far from all the languages I'd like to learn like C++, JAVA, C, ASM (very long term goal, I know)

The problem is you're not really just learning C# the language itself, but also the large API library that comes with it. The same for C++, and Java. They're each idiomatic as well, that is to say, you can't transfer knowledge directly between them.

 

 

do struggle with terms like memory controlling, holding the memory and releasing it at the same time, etc. It just sounds like Chinese to me.

Memory is just temporary storage in a program. It's usually associated with variables, for example:

#include <stdlib.h>
 
void
main ( int argc, char **argv )
{
      int x = 10;
      float y = 40.5
      char *p = malloc ( 1024 );
 
      x++;
      y += x % 4;
      strcpy ( p, "Hello World" );
 
      /* free our heap allocated memory
         -  this isn't necessary as a good OS should reclaim it automatically when the program ends
     */
      free ( p );
}

X and Y are what's called stack based variables, meaning that the program automatically allocates the memory required to hold those values for you. And they exist for the lifetime of the main function, which is the entire program because it's the entry point function (the function the OS calls/starts your program with basically).

 

P is what's called heap allocated memory (note the malloc function), meaning it's manually allocated storage, and it's the programs responsibility to manage it. Some programming languages don't allow the programmer to do this, chiefly because it can result in leaks. A leak being allocated storage that's not released. It's not very difficult to manage though, and gives the programmer a lot of freedom and efficiency.

 

 

What I'm basically asking is that someone explains to me the basic terms in C# like classes, what the "void" things mean above my code and what they do, etc. Just tell me what the mean and do in a simple way so that a child could understand.

Classes mean the same thing in all OOP (object orientated programming) based languages including C#, Java, Python, C++, etc. They only differ in implementation and syntax. And for that you need a language reference.

 

'Void' means nothing. In the return value as above it means the function doesn't return anything. For a parameter, it means the function accepts no values. It can also be used in certain languages to indicate an undefined storage class for a pointer 'Void *' - meaning it can basically point to anything up to the size of the compiler's largest addressable unit, which is usually the machine's word size (32 or 64 bit most often).

 

 

 

My brain does kind of understand what simple code does and how it works but I just need that little kick in the ass to be honest to start up.

It's best just to jump in and start playing with it, all while keeping the language reference there so you can look things up.

 

 

 

This is THE friendliest and most helpful community I have EVER found on the Internet.

As long as you don't criticise a certain company or its products ;)

 

I'm still trying to decide between C# and C. Thank you for the post but I didn't understand any of those terms.

That's what the internet is for. Go forth and Google / Wikipedia shall disabuse you.

Another thing I forgot to mention is that I have a very small background in maths. I've never gotten up to algebra because I dropped out of school before we got there. Will this give me a big setback?

No. Programming is 99% art, 1% math, and even then most of the math is very basic. I suck at math, well the hard stuff anyway ;)

Link to comment
Share on other sites

  • 0

1. tell us, what you would like to create. Preferably Windows programs/applications and games.


2. based off 1, neowin forum will help you pick a Language.... as depending on 1, 2 will have preferences I'd prefer C#, C or JAVA. I can't seem to decide.


3. Setup/Install the IDE for 2. Will do that as soon as my PC gets fixed.


4. write hello world Simple enough.


5. think about how you intend to interface with it. What do you mean by this?


6. evolve your "hello world"


7. ask the question how do i now do x here in the forum when you get stuck? (keep this really short, one problem at a time)


8. try x with suggestions/guides.


9. read people suggestions.


 


Thank you for this little guide.


 


If I understand correctly public List<string> strings { get; set; } retrieves a string out of a list (?) and then sets it somewhere else? 


Link to comment
Share on other sites

  • 0

Sometimes, you just have to step back and say "I'm not cut out for this."

 

I did that a long time ago with programming and design, never looked back since.

 

... Although I do envy the people that can "whip up a program in minutes" :/

Link to comment
Share on other sites

  • 0

The problem is you're not really just learning C# the language itself, but also the large API library that comes with it. The same for C++, and Java. They're each idiomatic as well, that is to say, you can't transfer knowledge directly between them.

Most of what you do in OOP/declarative/imperative languages is idioms that do translate to other languages in some form (a specific example is the concept of void that OP mentioned). What's the issue if there is a library that implements additional functionally for you? Even much of that is idiomatic (lists, maps, sets, strings, etc.). You have to learn all of these things anyway. You don't care about the specific interface(API) but you do care about understanding the concepts.

 

No. Programming is 99% art, 1% math, and even then most of the math is very basic. I suck at math, well the hard stuff anyway ;)

That's not really true, CS started as a branch off from mathematics. Algorithmic work and optimization is rather math heavy.

 

 

Just so you know there is a Huge difference between c# and C.... C is a low level programming language... you don't really create Applications/programs at this level... you write frameworks* and as you are starting out, it would be stupid to even try to write a framework... as that is crazy complicated...and would just be a stupid starting point. I am a Analyst Developer  in dot.net c# and I don't know enough to Basically write ANYTHING in C. Hope this illustrates my point about forgetting about programming languages at that level for now.

Most software you run on a consumer desktop machine is written in C/C++. There's an important distinction here to be made. C++ is not an OOP language -- it is a multi-paradigm language that incorporates most of the important features of C. In fact, the majority of compilers don't even implement the features of the C outside of what C++ offers. So when you are programming in C you are really just using a C++ compiler that happens to support the overlapping features of C. What this translates into reality is that many-times developers who are using C++ are just using C + STL; or rather C with standard library classes for the additional functionality those classes offer.

Link to comment
Share on other sites

  • 0

Sometimes, you just have to step back and say "I'm not cut out for this."

 

I did that a long time ago with programming and design, never looked back since.

 

... Although I do envy the people that can "whip up a program in minutes" :/

 

I'm of the belief that if someone has an interest in a subject they'll excel in it. That's why school systems pretty much fail everyone - they have a tendency to make everything uninteresting.

Link to comment
Share on other sites

  • 0

Start by learning the things that are common to all programming languages.

 

IF (<logical test>) { <do this> }

ELSE { <do this> }

WHILE (<logical test>) { <do this> }

 

Variables. These should be used when a particular piece of data is used in more than one place, and can change. 

 

E.g. Consider the following

 

int i = 1;

while (i < 20) {

  print i;

  i++;

}

 

This creates a variable called 'i' and assigns it a value of 1. 

 

There is then a while loop which says "while i is less than 20, do this" - "this" being "print i and then increase i by one." So with each pass of the loop, i will increase by one, which means that eventually i will reach 20 and that will cause the loop to stop, because the "while i is less than 20" will no longer be true, so it terminates. 

 

You should try to learn programming fundamentals like the above before you actually try to learn a specific language. 

 

Personally I learned mIRC scripting almost in it's entirety and this made it a lot easier to experiment with other languages. Although there are some differences, it taught me the basics like variables, if-then-else, loops, etc. 

Link to comment
Share on other sites

  • 0

Most of what you do in OOP/declarative/imperative languages is idioms that do translate to other languages in some form (a specific example is the concept of void that OP mentioned). What's the issue if there is a library that implements additional functionally for you? Even much of that is idiomatic (lists, maps, sets, strings, etc.). You have to learn all of these things anyway. You don't care about the specific interface(API) but you do care about understanding the concepts.

 

That's not really true, CS started as a branch off from math. Algorithmic work and optimization is rather math heavy.

 

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.

 

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.

 

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. 

 

Writing a hashing function for an associative map doesn't count as creating an algorithm in my book. All my functions are based on existing work done. I might take bits from here, bits from there, then combine them and change it around a bit, but in the end, it's not an original piece of work, nor does it require any serious math.

Link to comment
Share on other sites

  • 0

As to the OP, here is basically the reality of things. Programming is a career you are born to do, not grow into. I know others will quote and debate me on this but I stick to what I've said. Some people just don't have the mindset required to grasp programming concepts and write quality software just as some people don't have the know how to work on a car or the precision to be a surgeon or the charisma of a salesman. While the OP may end up getting basic concepts, it may simply be one of those things that he just isn't meant to be good at. Its not a bad thing, we all have our own talents.

Something that may help the OP grasp the concepts further is putting it down for a while and coming back to it. I've did that many times and am able to proceed forward.

I think that's a bit of a generalization. There are very few people that I've met that would be completely unable to learn to program. For many people it comes easier than others, but I don't think that's to say that only the few that understand programming to it's core are the only people that can program. I wouldn't call myself a mechanic by any means, but that doesn't mean I can't change my own oil, or fix up basic faults. And I wouldn't call myself a surgeon, but I feel that I could bandage up a wound. There are a few elites that will run rings around everyone else, but most people can learn the basics.

Saying that someone is "born to program" is only true only insofar that they were born. The rest comes from having the right mindset, a strong will and the ability to solve problems.

The only thing I know about SQL is exploiting it to gain access to a website/database.

I guess that the reason why I want to learn programming is because I want to be good at something and I love computers. I'm quite good at learning languages and programming languages combines my two favourite things into one. They both really interest me and just seem very "cool" to learn. I do know a little bit of programming (How to do basic if statements, declaring variables) etc.

If you know how to do if statements and declare variables, you're well on your way to being able to program. Most other programming concepts are based off of these two simple ideas.

I have also decided to learn C# as it is not very far from all the languages I'd like to learn like C++, JAVA, C, ASM (very long term goal, I know)

The thing is that I don't struggle to read English, I do struggle with terms like memory controlling, holding the memory and releasing it at the same time, etc. It just sounds like Chinese to me.

What I'm basically asking is that someone explains to me the basic terms in C# like classes, what the "void" things mean above my code and what they do, etc. Just tell me what the mean and do in a simple way so that a child could understand.

Given what you said there, I wouldn't go straight into a lower level language like C just yet. C (and C++) are very much based around knowing what you're doing with memory, and how it is acquired and released. Give yourself a break and start with something like C# or Java, where the memory stuff is less necessary than lower level languages.

Don't concern yourself with things like "holding memory" and all that jargon for the time being, that will come later as you better understand what your computer programs are doing underneath. For the time being, just aim to write a little program that does something cool. It doesn't have to do much, just something that you can compile and say "I did this". It doesn't even matter if your code sucks, it will get better as you progress, guaranteed.

Another thing I forgot to mention is that I have a very small background in maths. I've never gotten up to algebra because I dropped out of school before we got there. Will this give me a big setback?

It might set you back a little, compared to someone well skilled in maths, but not very much. You'll find that you'll actually learn algebra as you progress. Consider the following line of code:

int testScore = totalScore - incorrectAnswers
Easy peasy. It takes the values of two numbers (totalScore and incorrectAnswers), and subtracts them and puts the result into a variable called "testScore". But what if I do this:

x = y - z
Suddenly it's algebra, but the actual idea itself didn't change, we just changed the names of the variables in the "code"!

Long story short, don't get hung up on the maths, or the principals of computer programming. Pick up a language, pick up a book (or online tutorial) and start going through it. The rest will come naturally. Every hill looks huge from the bottom, but as long as you've got the right shoes, the desire to succeed and take plenty of rest breaks to take in the view, you'll find yourself at the top before you know it :)

  • Like 1
Link to comment
Share on other sites

  • 0

Another thing I forgot to mention is that I have a very small background in maths. I've never gotten up to algebra because I dropped out of school before we got there. Will this give me a big setback?

 

Programming, in it's essence, is math heavy; depending on the field you can do linear algebra, vectors, analytical geometry, functions, polygons, probability, and much, much more!

 

 

No. Programming is 99% art, 1% math, and even then most of the math is very basic. I suck at math, well the hard stuff anyway

 

lol wut? Art is a subjective form and content; programming, on the other hand, is based on a science: math.

  • Like 1
Link to comment
Share on other sites

  • 0

btw guys: OP has said that:

 

Unfortunately because I have autism and a learning disorder things can be extremely difficult for me to learn.

 

So, considering that, i still advice you to go back to the very principles and basic stuff that will make the foundations of programming: pseudocode. Learn to read a problem, think of the logic of it and start dividing to find the solution of it. Eventually you will start coding small bits but changing your mindset to programming is the very first step.

 

Don't know why all you guys are jumping on the "get python, books, see this code" bandwagon when the OP doesn't understand the very basics! That's the first thing to learn and from there will you like or not.

 

Also don't elude yourself: programming isn't a easy life or full of roses everywhere. Specially game programming, can be very exhausting.

  • Like 2
Link to comment
Share on other sites

  • 0

Programming, in it's essence, is math heavy; depending on the field you can do linear algebra, vectors, analytical geometry, functions, polygons, probability, and much, much more!

 

 

lol wut? Art is a subjective form and content; programming, on the other hand, is based on a science: 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:

In real?ity in com?puter sci?ence, just about the only thing that?s really sci?ence is when you?re talk?ing about algo?rithms. And opti?miza?tion is an engi?neer?ing. But those don?t actu?ally occupy that much of the total time spent pro?gram?ming. You know, we have a few pro?gram?mers that spend a lot of time on opti?miz?ing and some of the select?ing of algo?rithms on there, but 90% of the pro?gram?mers are doing pro?gram?ming work to make things hap?pen. And when I start to look at what?s really hap?pen?ing in all of these, there really is no sci?ence and engi?neer?ing and objec?tiv?ity to most of these tasks.

 

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.

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.