Jump to content
  • Advertisement
CodexBuild

How difficult is it to make programs?

Recommended Posts

I just registered here. I came here to learn how to make different programs. I just have a few questions: how hard is it? How long will it take on average?

Share this post


Link to post
Share on other sites
Advertisement
Posted (edited)

Welcome. You want to learn to program ? Goood 🙂

I started 2,5 years ago and i think i got the basics. I will never get as good as somebody who started earlier (there are a few real cracks here i realized) but that's ok for me.

To my limited knowledge programming is an incredibly vast field. It can - like everything else - be hard or rewarding. For me, atm it's hard to understand how multithreading works, but its rewarding to implement a basic physics system. Some time ago it was hard for me to implement basic shading and terrain displacement maps. Hardness changes with your learning curve. In the beginning, it'll probably be hard for you to understand syntax and semantics of a simple program.

I assume that you somehow want to get into games programming ?

You will have to learn a programming language, which is easier than learning a natural language (at least one like Spanish or German, believe me !) but needs a little dedication.

On the danger of being wrong, how about, If you're the interactive type, starting with Python, if you're more of a theoretic, start with C or even C++ (be bold) and see how it goes until you can solve your first programming problems.

Just an opinion.

 

Edit: How long will it take ?

In a short movie, a freeclimber was asked by a paraglider

"How long does it take you to climb that wall up to the top of that mountain ?"

"20 minutes ... or the rest of my life."

And the race started 🙂

 

Edited by Green_Baron

Share this post


Link to post
Share on other sites
5 hours ago, Green_Baron said:

In a short movie, a freeclimber was asked by a paraglider

"How long does it take you to climb that wall up to the top of that mountain ?"

"20 minutes ... or the rest of my life."

On the plus side, you won't fall to your death if you screw up during programming.

Share this post


Link to post
Share on other sites
Posted (edited)

Of course not. But it could take the rest of your life.

Was meant as encouragement to tackle it.

Edited by Green_Baron

Share this post


Link to post
Share on other sites
6 hours ago, CodexBuild said:

I just registered here. I came here to learn how to make different programs. I just have a few questions: how hard is it? How long will it take on average?

It depends on what you are trying to do, your natural ability and your experience.  You can write tic-tac-toe in a few hours or less.  It may take even a very experienced programmer many years to make an MMO as a solo developer.

Share this post


Link to post
Share on other sites

Yes, this is a very thorny way, because the programming is very extensive, there is no framework. To recommend? There's not much I can tell you, since I went to University, but you can try to take some courses. I just live in England so which ones I can't tell you. And for what purpose do you want to learn? If you just need some kind of program, I can advise you to just turn to professionals https://www.effectivesoft.com/ . But in any case, programming is quite an interesting thing.

Share this post


Link to post
Share on other sites

How long is a piece of string? Are you wanting to write an essay or a novel? Programming can be a form of creative writing, especially when making games.

You could start here (it's free): https://www.grelf.net/jscourse/start.html

That will show you how easy it is to get started but you must do the examples - learn by doing.

 

Share this post


Link to post
Share on other sites

Programming (first of all) is solving problems and implementation algorithms.

Example, You want draw Textured Cube.

You need: Buffer, Vertices, Indices, Texture, Texture Coordinate, Transform matrix, Camera, Something that can draw pixels.

Also you can you some high level abstraction (like Unity or another engines) and not write your own "ground truth" things.

https://www.raywenderlich.com/2795-beginning-game-programming-for-teens-with-python

Most of time programmers fight with their tools and debugging code.

Share this post


Link to post
Share on other sites

There are two kinds of developers out there, coders and programmers. Learning a programming language lets you become a coder because you understand the principles and can quickly google for some solutions. For example you want to compare two different lists for similar items in C#, you google exactly that and get a solution from Stackoverflow.

On the other hand, mastering the art of (whatever-)programming to become a real programmer is something taking some time. Programming is not just scripting or copying code together, it is a phylosophy; the phylosophy of fighting complex problems in an efficient way. Programmers know their language as well as their native spoken language, programmers think about code reuse, error proofness and input correction, performance and/or memory footprints.

Think of the user as your greatest enemy, you always have to be some steps ahead in planning how to design your system. If you expect the player to walk through the fence-door, he/she will also try to jump over it so your code needs to handle that.

I recognized during my 7 years now as professional programmer and the 14 years as a hobbyist before that it isn't that important to have famous math skills rather than logical thinking. Most math in game development is fixed to a well known subset of math that is also hidden behind usable classes or engines where logical thinking mostly isn't even covered. Writing your own linear algebra library is a nice task to refresh the background of 2D/3D math but you always start from scratch when writing a script engine or a file format for example.

Programming is not just writing code, I agree with @grelf that it can be some kind of creative puzzle solving but it is also knowing your platform. You can't write performance efficient code if you don't know how the OS is scheduling threads or how the network stack works.

I personally started as a kid with the Blizzard games Starcraft and Warcraft III, first writing my own campaigns in their trigger editor (the ancient of visual scripting I guess) and later even changing gameplay completely using JASS; my first scripting language. It helped a lot to try and error see what happened when touching some of the wheeles and switches behind those games.

Today I reached a state where I like to analyze systems to get better, change code to see what this little changes trigger in the rest of the application and take all this knowledge into account when designing my software, if it is a game or an engine dosen't matter. I evolved good debugging skills from my past years of just tinkering arround.

I even learned the math behind Bitcoin just for interest and know used the knowledge in my game framework.

You should start simple, grab a book and do the tutorials, learn the principles of programming and then tinker arround with your solutions. Improve them with every new part you learn and get a goal you are excited about. If you want to make a game, do it; if you want to write a game engine to get knowledge of the technology of game development, do it; but do anything!

If you hang or don't know how to solve a problem, just ask and ask for as long as you aren't happy with the answers.

Good Luck!

Share this post


Link to post
Share on other sites

I don't have the first-hand experience in programming but I saw how daunting the task can be. Speaking on the perspective of a creative, programmers have it tough when it comes to executing and making your ideas into fruition. You have to be decisive with your thoughts and ideas because revising is tedious work for everyone and it's taking a toll on the programmers because that's where the pressure put into. 

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!