Why is programming so fucking hard to learn no matter what engine or whatever it's with?

Why is programming so fucking hard to learn no matter what engine or whatever it's with?

Other urls found in this thread:

skilldrick.github.io/easy6502/
tutorialspoint.com/data_structures_algorithms/
twitter.com/NSFWRedditGif

You're basically learning another language, but instead of say japanese you're speaking machine.

>C#
>Hard

>any OOP language
>hard

Programming is only hard when you don't understand how a computer actually works.

Play around with an old CPU like the MOS 6502 and learn the assembler language. Then learn some C.

If you can understand all the concepts, then you can program literally anything.

Just use blueprints

Because you need to practice.

Start off making small example games, even if you outright have to copy the code. Learn how everything works, why some method/function does something and go from there. Attempt to make your own derivates, etc. You need practice basically.

Because you're lacking logic.

Well working in Unity you also need to familiarize yourself with the methods inherent to the engine which makes things a little tougher.

If you write everything from scratch yourself you have a much better understanding of exactly what you're doing I find, though of course it is far more time consuming.

Are there any good guides for that sort of stuff?

Someone explain textures and UVs to me in babby language.

I need to take sets of sprites and convert them into textures in order to replace 10000 objects with 1 mesh for efficiency, but I've never used any 3D stuff before.

For 6502 asm there's a ton of stuff.
skilldrick.github.io/easy6502/
is a good place to start for a total beginner. There's tons of great documentation if you just google.

For C you can either take the purist route and work through the K&R book, or try C Programming: A Modern Approach by K.N. King. Don't just read the books, do the exercises too.

By the end, you should have a good idea of how computers use registers and memory, and seeing the how C and ASM relate to eachother will teach you a great deal about how programming languages can abstract things.

It's only hard if you don't practice. All the manuals in the world won't teach you what practice will

texture are, well, the textures. the images that you'll end up drawing on screen or using as input into your rendering calculations to draw a surface.

UV is a short term for the texture coordinates used in addressing points in a texture. similar to how you address locations in a physical space using a coordinate system (typically x/y in 2D, or x/y/z in 3D), typical two dimensional textures use a two dimensional coordinate system to specify points on the texture. for various historical reasons, the coordinates used here aren't called x and y, they are called u and v instead. that's why it's UV.

the process of UV mapping means mapping one UV coordinate to each of the points in the polygons that make up a mesh. so the renderer knows 'at this point, it uses this point in the texture. at the other two points of the triangles it uses this and that point. all the points on the triangle in between are smoothly interpolated from the UV coordinates given at the corners'.

>C#
>Unity
>hard

Textures are the actual pictures. UV is just x/y coordinates in the picture, from 0 - 1 so it's not based on the size of the picture.

>take sets of sprites and convert them into textures in order to replace 10000 objects with 1 mesh for efficiency
??? I think you got words mixed up but I'm assuming you're doing a sprite map. So say you have one texture with 4 sections cut up evenly. UV 0,0 to 0.5,0.5 would be one sprite. UV 0.5,0 to 1,0 would be another, etc.

Thanks dudes, that helps me understand a bit. I hadn't even seen an explanation of what UV actually was while googling around other than getting the vague idea that is was explicitly related to how the visuals will be represented.

Because programming IS hard.

There is no shortcut to being a good programmer, it's not a few tutorials and then will know all you need to know, it's years and years worth of study and practice.

Honestly, if you aren't entertained from the get go and just find it frustrating that you aren't coding Doom 4 from day one you should probably just drop it. I don't think it's for you.

I prob didn't explain it well, but basically what I'm trying to do now is draw my gameplay map onto a mesh to use as a 3D world map representation. The normal visuals are 2D tiles.

One method to do this is probably to create a mesh / UV / material. A different solution would perhaps be just to create an image that represents it, and just create it pixel color by pixel color using Texture2D's SetPixels

>Because programming IS hard.

lyl

Pic not related because c# is piss easy compared to others. More so if you're using MVS, that shit writes itself

>For C you can either take the purist route and work through the K&R book, or try C Programming: A Modern Approach by K.N. King. Don't just read the books, do the exercises too.
Are they available free on the internet?

If you're trying to learn programming by creating a game, you are going to have a very hard time. Making very simple games is a great way to learn eventually, but you need to understand basic programming concepts first.

If want to get into the hardware like suggested, then definitely diving into their suggestions is a good starting point. If making games is your goal, I would recommend learning a simple scripting language first (Python, Lua). After that, and if you are feeling comfortable, expand into OOP practices and design patterns. Learning a language is literally the easiest part of programming. Anyone can write code, but it takes lots and lots of practice to write good, well designed code.

I would say, however, that most hobby style development is not contingent on understanding everything at a hardware level. That understanding will make some things will be easier for sure, but if you are just looking to develop some simple games using modern game engines, then the chance that you are going to need to be at that low of a level is extremely low. Most modern languages and tools will make all of that very easy for you. It's really a matter of deciding what you picture yourself coding. If you are picturing staying at a hobby level of depth, I would skip some of the low level learning and move on to understanding some more high level concepts.

Why not just use a more easier and superior language?

Why bother with this when you can just learn 8086 assembly. Fairly easy to understand and the theory covers the basics for computer hardware. Thats what I learned, anyways. The books I used also were made for 8086 assembly and assemblers.

no, c# itself is not hard. Interpreting microshit's shitty documentation is

Cus you're a fucking retard

Because you're new. Keep at it, things will fall into place soon.

Understand how all this works and videogames will become piss easy
tutorialspoint.com/data_structures_algorithms/

>Why is programming so fucking hard to learn no matter what engine or whatever it's with?
If you just want to program games and not bother with becoming a computer scientist, use BASIC.
It's literally called Beginner's All-purpose Symbolic Instruction Code.

learning how to programm isnt hard itself, the hard part is that you need a really good math base and logic thinking

>math base and logic thinking
>in order to use Unity
No.

if you want to be a shitty programmer then fine, but you will never do something worth a shit without knowing math and learning how to think logically

>if you want to be a shitty programmer then fine
I don't think anybody here wants to become a programmer.
Just because you create simple amatur programs doesn't mean you want to become a programmer.

Can't you read?
You don't need those things to develop a game in unity.

Here are some hints:
Forget Unity and use something easier and simpler. Start with 2D programming using Javascript in your browser.
Completely forget the OOP meme, you don't need object-oriented programming as an amateur beginner.
Forget C# and all those pro languages.
Forget compilers, use interpreters.
Keep it simple!
You are not going to become the next John Carmack, you don't need to use his tools you will never understand.

what if i want to be the next john carmack

Then kill yourself, get reborn, start programming at age 6.

Learn Javascript on code.org .
You'll learn the language, but more importantly learn how languages are usually formatted. You'll learn how to learn other languages, and that's the best thing you can get.

Can I use something other than Visual Studio to learn C#?

You can write it anything, but you will need to add compiler support somehow. Visual Studio is so commonly used for it because it works out of the box. Some googling should get you some hits for replacement IDE's

Why do you think modern games run like shit? Everything is held together by duct tape and glue.

Add to that its usually running on trash hardware like a console, and developers simply don't care about optimizing for PC.

Trash hardware is more than powerful enough for most of the shit devs are throwing at it. Just crunch time + inexperienced devs + "30fps is good enough" talk from the publisher is causing laziness.

JavaScript is definitely not how languages are "usually formatted" but it is very useful for web applications.

Unity: learn C#
Unreal: Learn blueprints
Want to know how programming works in general and use that to learn another language: Learn C++

Programming is pretty easy bruh... I do agree though that most engines make things a lot harder and force you to make sprites, animations and shit before you can even start programming.

If you want to learn how to program by making games, I would recommend not using any engine at all.

Programming is not easy at all. It's really difficult. It takes a lot of time and patience and practice to really understand what's going on.

>Want to know how programming works in general and use that to learn another language: Learn C++

I don't know if I agree with that.

C++ was just an attempt to mangle C into being a native OO language and it falls woefully short. It's better to learn C.

No one uses C today unless they are working with embedded systems.

Just learn C++ and see where you wanna go from there.

I think you could start with either. I don't think C++ is as bad as you're making it sound.

People that are rock solid with C make bank tho

>can't program too well without using dedicated libraries, even in C
I barely understand how to use strings without the libraries. I have no trouble doing anything in java, python, or C++.

Don't try to make a game. Learn the fundamentals of programming first, or expect your shit game to appear on here.

Whatever you do, stay away from Blitz3D and BlitzMax. I got stuck using them for years (because easy as fuck and couldn't be bothered to learn another language) and didn't even realize how restrictive pieces of shit they are compared to literally any modern mainstream language. Nowadays programming in Blitz feels like gouging my eyes out with a bowling pin.

Yes and there are people who only know Java make inside money in banks. Once you are good enough, it doesn't matter which language you know since you can transition easily enough. I learnt C and C++ in Uni and now at work all I do is code in Python all day (GIS company). I am sure certain portions of dropbox and youtube make use of Python and those people make bank as well.

besides embedded what are some other good jobs for C?

user, C# is one of the most well-documented languages. Stop with your shitposting

who /CS/ here?

Plenty of OOP languages are hard because they're shit. Hard doesn't make a language good.

>tfw no good c# machine learning libraries with readable documentation and sensible naming conventions so you have to write your own

reeeee

this took forever

doesn't seem worth it id land up working for ubisoft 12 hours a day for a fraction of what the company makes on every title and they own it all

or

start up indie dev company pump up 100 generic gambling addiction mobile games hoping to be the next clash of clans.

or

start up indie game company and take 5 years to design generic "le open world survival" game that makes you a few hundred grand after steam cut taken which results in like 30,000-45,000 per year of dev time

why live?

As someone who works in embedded systems, falling hardware costs means that even embedded developers are able to make choices in languages that get used. Spending a little more to have additional memory so that you can write your code in something modern is becoming more and more common. Because of this, it's getting harder to justify working in C in a "ease of development" vs. "cost of final product" comparison. All the systems I am work in use C++ as their main code base, with maybe some very low level C code as you get closer to drivers, etc.

Once you understand logistics, which you should if you're smart enough to play card games, it's all down to learning syntax which is boring to slog through.
Make it fun by using tutorials to make small useless shit until you have the syntax burnt into your brain like unholy scripture that scars the mind when read.

True but that is dependent on the company you work in. Certain companies are still restricted to small processors due to the size of what they are working with. If you plan to work with embedded systems, C is a basic requirement in my opinion. Especially if you are working with legacy stuff. Being able to code in C++ is a benefit.

Finally someone giving some good advice.

>Learning programming by starting with Assembly

That's like learning to drive by building a car. It's fucking retarded.

>tfw artfag with no programmerbro to make vidya with

could I program a gf?

>There are "programmers" in this thread that aren't fluid in x86 and x86-64
Xor rax, rax ret your life my dude

Fluent*** fuckin phone posting

Come on, lets leave the diablo II runewords at the door.

>It's fucking retarded.
No it isn't. All good drivers know the basics of how a car works.
If you want to be a good programmer, it is important to know basic assembly.
No one ask you to master assembly but it is a good idea to know what LSR means.

It's so well documented you spend half your work hours looking for information on Stack Overflow than actually programming.

Do you hear that? That's the sound of the garbage collector.

It's coming to collect you.

>There is no shortcut to being a good programmer, it's not a few tutorials and then will know all you need to know, it's years and years worth of study and practice.

The thing is, you can still be a shit programmer and be super successful, like YandereDev, Toby Fox (Undertale) and Notch.

Or, you can spend years and years learning stupid worthless shit you'll never use and be a good, but financially poor, programmer.

The tricks to learning programming are:
-Say "fuck you" to the standard and all the autistic Linus Torvald nerds that flip out when violate it
-Only learn what you need to learn, only use what you need to use
-Experiment and mess around to see how different things work

Is this a sample project? Because it's fucking retarded.
You can do everything in that method with one line
PooledSpawn.Add(Instantiate(poolerObj));

Actually, I'm also retarded, it's

PooledSpawn = new List(){Instantiate(poolerObj)};

Or you can spend years and years not learning to program and never lucking into a meme game like those idiots
Then you have no real marketable skills and no money

>YandereDev, Toby Fox (Undertale) and Notch.
>Shit programmer

They are average programmers. Shit programmers is what programming boot camp churns out that can't write working code. Just because they are not at the "cutting" edge of technology doesn't mean they are "shit". 99% of the applications you use are coded by people like them. What made them successful wasn't their coding but their idea.

I'm going to guess and say you're either a retard still in college who is in the middle of or just finished taking a class on Assembly or a shitty programmer that wants to think his trivia knowledge of assembly makes him better.

If you're working as a developer you will almost NEVER run into assembly. And no, bitshifting like you mentioned doesn't count you dumb faggot. The only time you will do assembly is when you get into hardcore optimization where you need every little bit of boost you can get.

If you ever get a career as a developer you'll realize this.

Stupidest thing I've read.

Programming is high level logic. Every language and compiler handles low-level shit for you.

If you understand logic you can program. If you learn how to write a program in Java and Javascript that looks through an array and does a different operation depending on that content of that array, you can program literally anything.

15 years of working as a developer and the only difference between being a shitty developer or a good developer is how well you document your code.

I tried, too hard for me. Lots and lots of information on the theoretical side of things.

What is this?

You will be surprised at how many good programmers can't do good documentation despite their code being fantastic. So you are wrong.

is that RPG Maker?

That's weird, different person here, I work at a fortune 500 with a mostly c/c++ codebase, and I work with assembly on a daily basis. If you can't debug your code properly you're going to be fired.

This. It's one thing to learn concepts and do examples but to know how to program well you have to be able to recognize a better way to write a program that does the same thing. How can my code be more optimized for speed for example.

''Good'' programmers are praised for shitting out comments everywhere rather than writing their code to be easily readable and understandable.

You want to be a good programmer? Don't write comments. Write your code to be understandable instead, use comments only when absolutely necessary.

>Muh developer career
Go fuck yourself retard. That is the equivalent of telling me you don't need to know V = RI to work in engineering cause lmao all the machines help me calculate voltage already.

Knowing bit shifting helps especially if you are troubleshooting issues with embedded system which you might end up developing a career in.

Unironically go KYS.

There's a difference between being a good programmer and a good developer

Can you make good sprites?

this

Even if you get into low level stuff or hardware there's already thousands of frameworks to do the heavy lifting.
Bragging about assembly is the best way to out a first year CS faggot.

t. JavaScript "engineer"

Assembly is hard, I got lost when I was learning about binary and shifting bits. I just couldn't understand that shit it was like interpreting computer language word for word.

Utter bullshit. Idiots who don't program think documentation matters only so they can swap people out of projects and make it easier to fire people after they finish a decent program.

Good code is efficient and functional, nothing else. Documentation is irrelevent if you can reproduce it yourself.

Yes. I don't write comments. Only enough for competent to read it. That way pajeet is not taking my fucking job.

People who write good documentation are just asking for their jobs to be replaced with H1-B visas.

>The only time you will do assembly is when you get into hardcore optimization where you need every little bit of boost you can get
never worked with embeds : the post

So I was right then. Thanks for not only proving my point but also being so fucking retarded that you can't read and understand that bitshifting is not assembly. If you think that, you or your professors has outright lied to your retarded ass.

Assembly deals with bitshifting. Bitshifting is not assembly.

I work in a Java / C# shop; no one here goes near assembly. If you have to use assembly to debug your code then it's likely you're either working in 3D graphics or in sector with companies hanging onto outdated tech such as financial.

>implying comments are the only way to document your code

Understandable code and good structure is essential but not the only thing. I swear I've seen too many faggots thinking they're pretty clever abstracting so much their code and not properly documenting a single thing.

Same with mathematics. If you suck at math it's because you can't see why shit makes sense. I heard people that suck at reading moves in chess will likely suck at math because they let details slip on their planning and thinking process.