Advertisement

I Know Nothing and I want to change that

Started by May 23, 2018 07:33 PM
43 comments, last by TheGreech 6 years, 6 months ago
4 minutes ago, Scouting Ninja said:

There is nothing equivalent with Unreal. :) However if you are starting with Unreal you should be using Blueprints, not C++ till you have a grasp of programming.

However Unreal like C++ isn't beginner friendly.

You can start with Unreal, there is lot's of bonuses to doing so, but it will be a rocky road at the least.

 

Since you are going to college you should probably start with Unity, it uses C#. It's the one most colleges use to train developers. Unity and C# is much easier to learn than Unreal and C++.

Because Unity is 10 times easier to use than Unreal and has 65-70% of the power, it is Unreal's biggest competitor. Or at least Unreal is Unity's biggest competitor.

 

Starting with Unity and switching to Unreal (or whatever engine is popular at the time) is a good strategy.

So biggest newbie question I have is. C# automatically assigns a memory value and C++ does not. That's the difference right?

15 minutes ago, Halpmelurngewd said:

So biggest newbie question I have is. C# automatically assigns a memory value and C++ does not. That's the difference right?

No. There are many differences outside of memory management.

A quick google search will give you an extensive list of examples showing the differences between the two languages.

Programmer and 3D Artist

Advertisement

A simple way to put the difference between C# and C++ is that you can think of C++ as a random assortment of powerful machine parts. Where C# is a already build machine with a purpose.

For example, Unity was made with C++ but the people who use the engine actually use C#.

46 minutes ago, Scouting Ninja said:

A simple way to put the difference between C# and C++ is that you can think of C++ as a random assortment of powerful machine parts. Where C# is a already build machine with a purpose.

For example, Unity was made with C++ but the people who use the engine actually use C#.

It's a little overwhelming. You see I can't learn by reading all I can do from reading is remember well iff // means the following is only for the programmers and every code needs a main() but I can never really learn unless I know why if that makes sense. For instance with #include<iostream> I know it provides basically input and output services from what I have read but what even...? I read some about c and c# as well and still feel just as confused. Like the word choice is like a bird in the sky and I'm on the ground. It goes over my head. I want to work in game design in some way. But I'm not good at art. I can write but who can't. I'm not good with composing music. 3d animation well tht goes the way of art so what valuble role can I play...  I don't want to just play the games any more. I also want to make them. ?

16 minutes ago, Halpmelurngewd said:

It's a little overwhelming. You see I can't learn by reading all I can do from reading is remember well iff // means the following is only for the programmers and every code needs a main() but I can never really learn unless I know why if that makes sense. For instance with #include<iostream> I know it provides basically input and output services from what I have read but what even...? I read some about c and c# as well and still feel just as confused. Like the word choice is like a bird in the sky and I'm on the ground. It goes over my head. I want to work in game design in some way. But I'm not good at art. I can write but who can't. I'm not good with composing music. 3d animation well tht goes the way of art so what valuble role can I play...  I don't want to just play the games any more. I also want to make them. ?

You'll understand why you need to include iostream once you learn about classes. By including the header file iostream you've gained access to the iostream class.

http://www.cplusplus.com/reference/istream/iostream/

Programmer and 3D Artist

1 hour ago, Halpmelurngewd said:

#include<iostream> I know it provides basically input and output services from what I have read but what even...? I read some about c and c# as well and still feel just as confused.

Think of it like this. The #include is a library of already made code. It is code either someone else or you made and by calling #include your are telling the computer: "I want to use the code in here".

That way the computers doesn't have to check every line of code on your computer while you work.

 

For example the "Cout" you are using is inside the iostream. So if you did not include the iostream the cout function will not work; because the program has no idea what cout is.

 

Advertisement
20 hours ago, Halpmelurngewd said:

I am an avid gamer. Always have been. I'm not artistic. And have tried to be. I want to be part of the gaming industry as a programmer. I have tried reading articles and forums but it lacks the breakdown that I need. I want to know everything. I am very technical and this would be the first time I would be learning a coding language. I want to learn coding for game design. I am looking for a mentor someone who doesn't mind if I ask a shit ton of stupid questions. I know nothing and am not afraid to admit that. However I want to know everything. I have registered for college but I want to get a jump on things. If anyone would mentor me I would be eternally grateful! Thanks everyone?

I relate to what you feel, and in my experience, not reading through the entire thread... about learning:

An innately procrastinating mind has a short-circuit: it interprets the feeling of accomplishment as a feeling of motivation needed to do something. The mind looks for the chemicals that are released when you feel accomplished prior to beginning a task, thus creating a loophole.

That type of mind needs to be constantly driven by external factors to actually hold on to knowledge, and to do things. It finds a hard time keeping focused in tasks when one is alone (when one requires to be self-driven), or when exploring into new knowledge without a guaranteed reward. It becomes frustrating for people who venture into programming, as that involves - for the most part - lonely and complex tasks, and the goals set by the mind seem too volatile to ever be achieved.

I don't know a formula to solve this problem, given how complex its nature is, but acknowledging how your mind works is a great step towards improving it. Also, when I have a hard time figuring out what is it that I want to do, I try to remember the things that I don't want to.

P.S.: There's no such thing as "everything".

Here's my experience. I learned programming years ago..... like1982 :D . Back then everything was simpler, so in order to do something cool it was easier because cool stuff back then wasn't so complex. Therefore your motivation was higher.  If you looked from where you were, to where you wanted to get,  you were looking at the top of a small hill.  These days you are looking at the top of a mountain and it can be depressing at times.

For instance my first introduction to graphics was using a Tektronix 4010 terminal.  You could pick up the manual and just write sequences of characters too it (called escape sequences) and plot lines on the screen in X,Y coordinates.  I could do this from HP Basic and it was super easy. Then I got a book on graphics (Principles of Interactive Computer Graphics) and I learned about 3D matrix stuff and then I could at least draw simple stuff in 3D on the screen (although it wouldn't move on this kind of terminal). Again it wasn't too hard, and when my friends who were doing stuff on thermal paper terminals saw it, they thought it was cool.  So the gratification was easy to come by.  

My best advice is try to forget you are living in the modern age for a second, and learn from the ground up.  Do something in the easiest language for you, and maybe draw a box on the screen.  Don't even use classes or any fancy stuff if you don't understand them. Use arrays and points. Try to understand basic stuff. Know that computer memory is essentially a lot of chunks of data stored sequentially and each chunk has an address, and with that address, you can take things out and put things in.  If you get comfortable programming in a simple interpreted language, try to learn C (not C++).  Why? Learning C means that you will understand low level concepts.  When you move to C++ it will be a smaller step as opposed to a big one. For example, you will already know something about memory management.  Even if you plan to use a more modern language with a garbage collector (it manages memory for you), this information is valuable.   You will understand that there is a cost to being sloppy.  In any case, this is kind of counter to how they say you should learn things today, but it has worked well for me.

Anyway that's my story.  In sort my best advice is to start at the bottom and work your way up. It's not a race and you aren't in competition with anyone else.  Above all don't get depressed. Try to keep your motivation high. That's the key!

You are going about this the wrong way.

You should understand by doing.

Get a self contained beginner's book that has alot of example code, and do all the exercises from the start.

You will learn better, and faster than by asking individual questions on this forum.

I would love to be able to recommend a book to you, but I read my beginners books 20 years ago, so I don't think they would be relevant at all.

You will learn faster by choosing a project driven beginner's book. And I can't stress this enough: Don't just read it. Make sure you actually solve the exercise (which should include writing code! [They don't require writing code? Get a different book! ]  )

I would also assume that in this day an age, someone can probably recommend a good self contained "learn how to program in X" tutorial instead of a book. Which might be quicker and cheaper than getting a book.

If you get a good beginner's book, there is very little chance that you will have to ask questions on this forum to get unstuck with basic concepts: (How to write a loop? What is an integer? etc..). If you find yourself having to ask these types of questions: Get a different beginner's book!

 

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

Not sure if mentioned in the thread, but:

I tend to make a distinction between learning a programming language and learning programming in general. I believe learning how to approach problems with a programmer mindset will take you further than simply learning to code, although through a bit more difficult/longer path. 

In this sense, I'd actually suggest that you start looking into algorithms, and how the solution to problems are thought out. Even if you don't go through the mathematical analysis of them, you will benefit greatly to see how the approach 'identify the problem -> divide into manageable chunks -> solve each chunk' is applied in many domains.  Programming languages are simply tools, and you should at one point be able to choose one based on what you want to tackle, not the other way around.

A series of steps from the top of my mind, which might be outdated, you could do is (there is actually a lot in between each step to help you to learn in depth, but I suppose college you help with this also):

1) Program a simple calculator

2) Program a hanged man (I guess that's the name in English, at least) text game

3) Program 2 cars crossing an intersection (again, text, but think car speed, waiting, and so on. Requirements can be what you want, as long as it is 'Real time')

-- You can try some other similar programs/problems to get comfortable with the concepts ---

4) Learn some sorting algorithms

5) Binary search trees and then B* trees (search, insert, delete)

7) Matrix multiplication

8.) Average Blur of an Image (or any other kernel based operator, but this one is simple enough)

9) Simple collision detection 

   9.1) Collision with space partitioning for optimization

This list is by no means exhaustive, but should give you a good idea on how to go about. I also suggest I implement (or re-implement) them in a couple of languages to get a feeling for what they do well or not.

 

In terms of book you could use, if I recall correctly, I used Deitel & Deitel How to Program (for the coding stuff) and Cormen's Introduction to Algorithms (for the maddening algorithms part, save this for waaaaayyyy later).

 

Hope this helps

This topic is closed to new replies.

Advertisement