Page 1 of 1

Learn how to program professionally

PostPosted: Wed Jan 30, 2013 4:26 pm
by Hblade
This is something I've known for a long time, but never had the self control to do so. Instead I always nagged other people about my problems. I used to blame this on ADHD, and while ADHD may have played a roll, it was also because I didnt have the mental focus needed to do so. If you want to learn how to code like the big boys (dst, skydereign, pyrometal, etc) all you have to do for starters is to view other peoples code, analyze it, and litterally word for word (even comments) re make that code. This will help you get a better understanding of how things work. If you see a function your not familiar with, just google it and it'll tell you what it does and how it works.

Q: Is it boring?
A: Depends, at first thought of course its boring but as you do it you seem to enjoy it a little more each time.

Q: How do I stay focused?
A: This is something you have to learn to do on your own, but I warn you you will get headaches at first. Not because somethings hard to understand but because your trying to stay focused.

Q: can YOU program professionally?
A: No, not yet. Then again what is professional? When it comes to programming, think an apple and a banana. Both are fruit, they just look different. Both will nourish your body and get the job done.

Re: Learn how to program professionally

PostPosted: Wed Jan 30, 2013 4:42 pm
by EvanAgain
Professional is being paid to do something.

Sometimes synonymous with Expert Level and above.

Novice means Beginner.

While Amateur means to do it without getting paid regardless of skill level. (You can still get paid as an Amateur, also, Amateurs often work out of passion for the job they do.)

Amateurism is often associated with freelancing.

Freelancing is doing work under your own name without a dedicated company.


To become "professional" you must learn how to conform to coding standard practices. But you don't have to be an expert.

Once you make a "salary" or "wage" with your programming skills then you can be considered professional. Often professional just means "To make money doing"...

Not all "professionals" are good at what they do. You can be Novice level professional and still be a terrible programmer. ;)

So there you have it. :)


Additional:

To become a developed programmer there are some tips you should know:

"If it ain't broke, don't fix it!"

Meaning: If it works, IT WORKS! Don't worry about trying to make it "perfect" or work at maximum potential. If it works, leave it alone. When your finished and your program is finally "functional", create a control backup, then use a different copy to polish up you code. Because in this stage, YOU WILL BREAK EVERYTHING!

"I don't know why it works, IT JUST WORKS!"

Meaning: You don't need to know why a specific function, tool, operation, (or even your own code) works. Just know that it does and move on to the next task. There will be plenty of time in the future for understanding and familiarizing with it when you have to write it 1,000,000 more times. Also, you can use your time AWAY from a project to learn about functions inner workings. But this goes back to the above tip. "It ain't broke, I don't care".

"I HATE TYPING!!"

Meaning: Programmers are lazy by nature. The lazier you are, the less code you will write. If you notice you are seeing blocks of code that "look oddly similar" or are "copy pasta". Then you probably need to write a loop or function to handle it. OR BETTER YET BOTH!! You can put a loop in a function, a function in a function, HECK!! YOU CAN EVEN PUT THE SAME FUNCTION INSIDE ITSELF!!!

"Syntax error? Missing (insert symbol) at line ##? BUT I HAVE ONE THERE!"

Meaning: Sometimes the "compiler" or "IDE" can't tell exactly where the symbol was suppose to be. Usually, this is caused by that "OH SO USEFUL" white space that us humans need to read the code. While the computer would be fine with long strings of text with minimal spacing. Usually, problems like this can be solved by backtracking and often its a missing semi-colon.

"I can't read my own code anymore! What Happened?!"

Meaning: This is caused by sloppy coding etiquette and practices. Always, have your code written as clean and neat as possible. Comment sections of code to remember what they do, and help other people understand what you are trying to achieve. Variables should have similar naming schemes such as:

Code: Select all
const int THIS_VARIABLE_IS_CONSTANT

int thisVariableIsStandard



You could even add tags to your variables to define the section of code they belong to:

Code: Select all
const int GLOB_VAR1; //Constant Global Variable. GLOB_ doesn't make it global,
                       // it just lets the programmer know that its created as a global.


int MENU_myList[5];  //This is a variable that belongs to menu functions,
                  //usually variables written like this variable will be global.


int i_x;  //This is just a variable used in a function,
         //i_ lets the programmer know that it's an integer.


float f_x; //Same as above but a float. The tag lets you have
            // variables of the same name while avoiding errors.


void MENU_MyFunction(); //This is a function written for the Menu section.


void MyFuction(); //This is a function with no tag.


void myFuction(); //This is a DIFFERENT function from the one above,
                      // but notice the slight difference. See paragraph below.


When naming remember how you name things. You don't want to end up getting confused and mistaking a function for a variable, or two functions with NEARLY the exact same name. So try to keep all your variables written the same through out you code based on what they are used for.

Good Example:

Code: Select all

const int MENU_MAX_ITEMS;

int MENU_menuList[MENU_MAX_ITEMS];

void MENU_InitMenuList()
{
    int i;
   
    for(i = 0; i < MENU_MAX_ITEMS; i++)
    {
        MENU_menuList[i] = 0;
    }
}





To keep yourself motivated and focused, give yourself challenges. Start, NOT with thinking about the code, but INSTEAD thinking about what you are trying to make happen. Write yourself a plan; an order of operation. Write out what it is you are trying to do. Start with the big picture and then break it down into smaller chunks. Do your work in tiers.


Example:


Spaceship Game

A keyboard controlled spaceship moves across the bottom of the screen.

The spaceship can fire upward.

There are objects that move from the top of the screen toward the spaceship, the objects can be avoided or destroyed.



A KEYBOARD CONTROLLED SPACESHIP


Left arrow button moves the spaceship left.

Right arrow button moves the spaceship right.

Up arrow button fires a projectile that moves upward along the screen.



And you repeat, continuously breaking down each part until you know exactly what needs to be done, then you just figure out how to do the smallest parts in code and then the larger parts begin to form.

Programming is like building anything. You use pre-made tools and materials to create a design that may only exist in your mind or on paper. If you don't have the tool, make it.

IMPROV!

Re: Learn how to program professionally

PostPosted: Wed Jan 30, 2013 5:08 pm
by Hblade
Hey thanks, :)

Re: Learn how to program professionally

PostPosted: Wed Jan 30, 2013 5:50 pm
by EvanAgain
Edited and Added more. I wrote the original post on my Android XD

Re: Learn how to program professionally

PostPosted: Wed Jan 30, 2013 6:14 pm
by Hblade
EvanAgain, are you sgt.sparky?

Re: Learn how to program professionally

PostPosted: Wed Jan 30, 2013 6:20 pm
by EvanAgain
You told me that before XDD When I first came to the forum

viewtopic.php?f=1&t=11141&p=77470&hilit=Evan+sparky#p77470

Re: Learn how to program professionally

PostPosted: Wed Jan 30, 2013 7:00 pm
by Hblade
Haha! Sorry lol, his name was also evan :P