Programming frustration

jcrew

Solid State Member
Messages
13
Location
US
Hello,

I am new to programming. I am also a career changer in my 40's looking to learn a new skill to get a better job.

I'm a logical thinker but understanding loops, functions, symbols, hash tags, and general coding is frustrating and complex. It s difficult to create a program from scratch and to learn coding.

Last year, I started out with C++ and became "ok" at it. But after a few months I gave up. I became too confused with the advanced stuff. I ended up memorizing the code to create games and copying and pasting someone else's work --and calling myself a programmer. Geez.
So I told myself --- "I need to understand and learn what I am coding so I can get a decent job (or freelance) and not BS my way through it."

I want to know exactly what each function is. What "char" means. What # is, etc. I want to be so well versed that I can teach someone a computer language.

The youtube tutorials for newbies are terrible. Many of those instructors assume we know programming.

I want to master coding. I need this stuff spoon fed to me in small amounts like I a 6th grader. I want to fully understand how to write clean code.

I think any programming language is difficult. I even tried learning "Scratch" the programming for kids to learn the basics. Epic fail.

Does anyone know any tutorials or awesome teachers for someone who knows ABSOLUTELY nothing about programming but wants to write an application, or a widget for a desktop or create a game?

Thanks.
 
What languages are you interested in learning, If you are interested in Java, PHP then code academy is an excellent way to learn.

Sent from my GT-I9506 using Computer Forums mobile app
 
Last edited:
I prefer to stick with C, C++, Java.

However, most of the tutorials on youtube are ridiculously unclear and they advance to the complex stuff pretty fast.
The instructors do not know how to teach code correctly to a newbie. Instead most tutorials teach syntax. That is not how to teach coding.
First I need to learn code, second I need to write it.
A beginner must first understand what is a variable and what is a function and what are source codes and explain each detail down to the core. Explain it in which a way it makes sense...such as teaching a coding class to 6th graders.

Instead instructors say..."this is a function, and this is a variable...and when you type this syntax...then compile it...and look you just created some code!" OK. I didn't learn anything. What are variables, source code, and loops mean? How can you explain these symbols in a way that makes sense?


For example I would teach code like this to a beginner....a function could represent a rectangle. So you would use the code word ..."rect" then a rectangle pops up on the screen. That makes sense.
Or "000" could mean the color black and "277" could mean the color white. So when you type "000" then black comes up on the rectangle.
That makes sense. But what does # mean? What does <info.std> mean to the coder?

Out of the thousands of tutorials this is the best one by far for a absolute beginner who knows nothing about programming.
Processing Hour of Code | Editor


I will try code academy.
 
Welcome to the Forum!

I'm gong to dissect your latest post a bit to give you of my personal opinions as a software engineer.

I prefer to stick with C, C++, Java.

Good choices. Of the 3 I think Java is easier as you don't need to worry about pointers and references or memory allocation.

However, most of the tutorials on youtube are ridiculously unclear and they advance to the complex stuff pretty fast.
The instructors do not know how to teach code correctly to a newbie. Instead most tutorials teach syntax. That is not how to teach coding.

I'd have to disagree with the last sentence here and I'll show why in other comments later on down. 90% of programming is understanding the syntax and how things work together. Think of syntax as grammar, you can't form good English sentences without it, and a line of code is nothing more than a sentence. Thankfully most of the basics in terms of syntax are the same across multiple languages so if you know the syntax for an if-statment in Java, you'll know it in C. What i've found many tutorials focus too hard on is code formatting - or how it looks when you type it. Code should always be readable, but what line the curly braces go on is pure preference and nothing else.

First I need to learn code, second I need to write it.
A beginner must first understand what is a variable and what is a function and what are source codes and explain each detail down to the core. Explain it in which a way it makes sense...such as teaching a coding class to 6th graders.
Bad one for me to start with as no, a variable isn't syntax but those typically don't come up until after a few "hello world" type programs. After all, a variable is nothing more than a place-holder for a value. While not useful for an average American 6th grader you can think of it as the "x" in 3x = 9. Actually creating the variable however is pure syntax and needs from the variable (will it only represent a number/letters/whatever?).

Instead instructors say..."this is a function, and this is a variable...and when you type this syntax...then compile it...and look you just created some code!" OK. I didn't learn anything. What are variables, source code, and loops mean? How can you explain these symbols in a way that makes sense?
With the exception of code comments, everything you type is source code - and it's all based on the grammatical rules (syntax) of the language you're using.

I believe I've already covered variables above in a quick glance but if you're asking about loops too comment back and we can help out there.

But what does # mean? What does <info.std> mean to the coder?
This is more of a targeted answer. In C/C++ the # is reserved for use on include statements. The non-technical answer is that it tells the compiler to do something before it compiles your code. Think of it like telling someone to wash their hands before eating.

I won't pretend to know what info.std is off the top of my head, but what that line of code does is allow you to reuse functions and utilities that were already done and coded within the info.std source code. To use an example:

If I were to write a program to round a number to the nearest whole number. I could write code to do this myself, or I could save myself time and include Math.h (assuming C code) with #include <Math.h> and then just call Math.round(number) to get the rounded number.
 
Also,

As for way to learn, if you're not apposed to spending a bit of money, I found the "heads first" books to be pretty good. They got some humor in them that I found amusing as a college student but they walked through things quite well. They have them at Barns And Nobel if you have one near you that you can browse through to see if it's something you'd like.
 
Celegorm,

All great points and thanks for dissecting it. You made some points clearer.

If grammar is to syntax then, pronunciation is to symbols.

For example....
The C sounds like a "k" sound. Words that have the "k" sound are catatonic, catwalk but are spelled with a C.
The A sound is similar to bat, rat, matt, i.e. Hence, spelled with A.
The T sound is similar to mitt, kit, hit, i.e. Hence, spelled with T.

One must understand spelling/pronunciation before grammar. Machine language(code) is different than just plain English.
Code consists of data, loops, symbols, variables, math, English, and all kinds of gobbley gook. So in order to write clear code one must have a strong command of data, symbols, variables, loops, English, and some math and know exactly where to put them much like grammar.
My goal is to master just the basics of code. I don't want to learn about loops, variables, and symbols yet.

Variables do make sense from Algebra.
x=3.
Answer: 3x-5 = 4

Lets dissect C++ source code.....

I have memorized but do not ask me what it means.

#include <iostream> (what does "#" this mean?)( What is include?) What is <iostream?)

using namespace std; (What is using namespace mean?) Why put std; on the end?)

int main() (int? main?) () ???
{
cout<<"HEY, you, I'm alive! Oh, and Hello World!\n";
cin.get();
}

Cout stands for c output. cin stands for c input. I get that. But why put that before and after a sentence?

It seems that coding is nothing more than just memorizing. I have to remember that "Char" is a data type that is used for what? I forget.
 
One must understand spelling/pronunciation before grammar. Machine language(code) is different than just plain English.
Code consists of data, loops, symbols, variables, math, English, and all kinds of gobbley gook. So in order to write clear code one must have a strong command of data, symbols, variables, loops, English, and some math and know exactly where to put them much like grammar.
My goal is to master just the basics of code. I don't want to learn about loops, variables, and symbols yet.

Well there's kind of the problem, things like variables and loops are parts of the basics of code. Without them, there isn't much coding that can be done as a program would behave the same every single time it was ran (unless that's what you're looking for, but then you'll get bored and run out of examples very quickly). With the exception of games, pretty much all programming is trying to fix something. Not necessarily because it's broken, but because there could be a way to do it better/faster. Planning and using loops, if-statements and variables properly and efficiently is what programming is truly all about.

#include <iostream> (what does "#" this mean?)( What is include?) What is <iostream?)

The "#" is a reserved character, not sure what it's meaning really is in terms of the C language (not used for anything in Java, used for commenting code in python(i think)). All that matters is it must be there for the include.

Include goes back to what I mentioned in my first post where code gets re-used instead of you having to code it up yourself. In this case IO stream is the C language standard for reading from and printing to a command prompt/console window. It is what gives you the ability to do the cin and cout commands below.

using namespace std; (What is using namespace mean?) Why put std; on the end?)

Not sure, never used it.

int main() (int? main?) () ???
{
cout<<"HEY, you, I'm alive! Oh, and Hello World!\n";
cin.get();
}

Cout stands for c output. cin stands for c input. I get that. But why put that before and after a sentence?

The cout command is the C way of printing things to a console or command prompt. Without the cout the user would never see your sentence. the cin is how the C program reads input from the user's keyboard.

It seems that coding is nothing more than just memorizing. I have to remember that "Char" is a data type that is used for what? I forget.

To a degree yes. But kind of like grammar once you grasp a concept you can apply it anywhere without thinking. The difficult part can be remembering the differences between languages. Like the cout you're currently working with is the equivalent of System.out.print() in Java or the "print" command in Python. All 3 do the same function just use different key words.

As for char, a char is a single alpha-numeric character that's 8-bits (1 byte) in length. It seems to be passing out of favor, at least in the field I'm in as it's not very useful compared to Strings, and has a larger memory footprint than a boolean (true/false) value. For intro lessens, chars are typcially used for accepting input from questions like "Would you like to try again [Y\N]".
 
Great information. I am going to keep plugging away at coding. Its actually fun when you get the hang of it. You mentioned that coding is about fixing things....and actually making a program run faster, etc. That is what motivates me to learn this stuff.

Thanks again.
 
Back
Top Bottom