Jump to content

How to learn programming?

pumas

I can code but I can only code in code.org :( I dont know how to learn 

       Pumas.EXE has stopped responding...

  • CPU
    RYZEN 5 1600
  • Motherboard
    ASROCK B450 PRO 4
  • RAM
    16GB Corsair Vengeance LPX
  • GPU
    PowerColor RX 5700
  • Case
    Corsair Carbide 275r
  • Storage
    intel 660p 512 GB
  • PSU
    PowerSpec PS650BSM
Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, Pumas_committed_bottleneck said:

I can code but I can only code in code.org :( I dont know how to learn 

There are a lot of options out there but in all honesty the simplest ones are to just get a book that is a introductory course to whatever language and then just start making projects on your own no matter how dumb they may sound. It's easier to get better at something if it's something you want to do/make compared to forcing yourself

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, jaslion said:

There are a lot of options out there but in all honesty the simplest ones are to just get a book that is a introductory course to whatever language and then just start making projects on your own no matter how dumb they may sound. It's easier to get better at something if it's something you want to do/make compared to forcing yourself

i've tried just following a book but honestly that just makes coding boring

       Pumas.EXE has stopped responding...

  • CPU
    RYZEN 5 1600
  • Motherboard
    ASROCK B450 PRO 4
  • RAM
    16GB Corsair Vengeance LPX
  • GPU
    PowerColor RX 5700
  • Case
    Corsair Carbide 275r
  • Storage
    intel 660p 512 GB
  • PSU
    PowerSpec PS650BSM
Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Pumas_committed_bottleneck said:

i've tried just following a book but honestly that just makes coding boring

That's how it always is. What's important is to learn a couple lessons, go experiment and make something that seems fun and then go learn again. You need to get through the boring points to get to the fun part as is with everything in life.

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, Pumas_committed_bottleneck said:

i've tried just following a book but honestly that just makes coding boring

Yes book are boring, some people have diffuculties following book instruction (me).

You can go to an online learning like https://www.codemy.net/ to have better learning process than books.

Ryzen 5700g @ 4.4ghz all cores | Asrock B550M Steel Legend | 3060 | 2x 16gb Micron E 2666 @ 4200mhz cl16 | 500gb WD SN750 | 12 TB HDD | Deepcool Gammax 400 w/ 2 delta 4000rpm push pull | Antec Neo Eco Zen 500w

Link to comment
Share on other sites

Link to post
Share on other sites

personally, i would recommend checking out love2d

i first started learning to program through the computercraft mod for minecraft, which used Lua, which if minecraft is something that you are into then that can be a fun first step

but then to start developing "real world" programs, love2d is essentially Lua with a bunch of nonstandard libraries thrown in to make it really easy to develop 2D games and applications

if you already have some basic experience with programming, then love2d can be very quick and easy to learn how to make your first simple programs, and then over time as you learn more it is also very powerful, it can be and actually has been used for serious game development by various indie developers

i spent about 5 years using love2d for hobby projects before i eventually got into java

Link to comment
Share on other sites

Link to post
Share on other sites

I don't find just going to a course is helpful. You're learning without purpose. Who cares what polymorphism is if you don't have an idea how it plays out when it is applied?

 

Find some project and see it from start to finish. Learn everything you need to do to finish that project.

Link to comment
Share on other sites

Link to post
Share on other sites

I would recommend a "will-driven" approach to get started.  Come up with something you want to make that you're really passionate about.  Be reasonable, don't go for a AAA game right off the bat - make it something simple like tic-tac-toe.  Start by looking up the most basic program in your language of choice ("hello world"), and some of the syntax for basic structures like output, if, for, etc.  Then simply look up additional things as needed as you expand the project and make it more complex.  Your needs will guide you to the necessary information.

 

After you've done this with several programs and are comfortable with the basics, that's when I'd recommend starting to read some documentation and more advanced theory to fill out your knowledge and make sure there are no gaps, as well as expand into more complex topics.  I'd recommend not starting with this though because you won't be motivated and you won't have any context for how things actually work, what's important at this stage, etc.

Solve your own audio issues  |  First Steps with RPi 3  |  Humidity & Condensation  |  Sleep & Hibernation  |  Overclocking RAM  |  Making Backups  |  Displays  |  4K / 8K / 16K / etc.  |  Do I need 80+ Platinum?

If you can read this you're using the wrong theme.  You can change it at the bottom.

Link to comment
Share on other sites

Link to post
Share on other sites

Fully agree with @Ryan_Vickers

I personally needed clear goals to be motivated and lead my learning process. 

You need to think about your ultimate goal and try to find intermediary steps along that goal. 
Whatever training material, it will get boring/demotivating if you don't see clear progress relative to your goal.

 

Maybe if you could express your goal, we could help defining the proper road :)

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, noyo87 said:

Fully agree with @Ryan_Vickers

I personally needed clear goals to be motivated and lead my learning process. 

You need to think about your ultimate goal and try to find intermediary steps along that goal. 
Whatever training material, it will get boring/demotivating if you don't see clear progress relative to your goal.

 

Maybe if you could express your goal, we could help defining the proper road :)

I wanna code a full fledged hyper casual game 

       Pumas.EXE has stopped responding...

  • CPU
    RYZEN 5 1600
  • Motherboard
    ASROCK B450 PRO 4
  • RAM
    16GB Corsair Vengeance LPX
  • GPU
    PowerColor RX 5700
  • Case
    Corsair Carbide 275r
  • Storage
    intel 660p 512 GB
  • PSU
    PowerSpec PS650BSM
Link to comment
Share on other sites

Link to post
Share on other sites

17 minutes ago, Pumas_committed_bottleneck said:

I wanna code a full fledged hyper casual game 

That's a really nice (and big) challenge :)

Defining your target device and audience will help restricting the technology choice.

But whatever your target, I would recommend try to focus on learning Unity.

Unity is a very good engine that supports a lot of different platforms (PC and mobile). There are a lot of good resources, especially their own material: https://learn.unity.com/ (They invest a lot in their learning material as this is also part of the marketing, as a nice adoption factor)

 

Video games are really complex to build. For this reason I would recommend you to start trying to re-implement an existing game. Like 1024, Floppy Bird, R-type ...etc.

You will learn a lot, feel accomplishment and will be able to try something more complicated next time... Or you can just try to add a twist on your existing copy of whatever game, it might be fun! Be creative :) 

 

If you want to talk about game design, your first step is to imagine the game before to code, write/draw your ideas on paper (because paper is better than a computer when you need to think about ideas).
 

Edit: Anyway, learning new things is hard, requires commitment and motivation. You can think that learning how to make a game will requires thousands of hours of your time.

Link to comment
Share on other sites

Link to post
Share on other sites

22 minutes ago, noyo87 said:

That's a really nice (and big) challenge :)

Defining your target device and audience will help restricting the technology choice.

But whatever your target, I would recommend try to focus on learning Unity.

Unity is a very good engine that supports a lot of different platforms (PC and mobile). There are a lot of good resources, especially their own material: https://learn.unity.com/ (They invest a lot in their learning material as this is also part of the marketing, as a nice adoption factor)

 

Video games are really complex to build. For this reason I would recommend you to start trying to re-implement an existing game. Like 1024, Floppy Bird, R-type ...etc.

You will learn a lot, feel accomplishment and will be able to try something more complicated next time... Or you can just try to add a twist on your existing copy of whatever game, it might be fun! Be creative :) 

 

If you want to talk about game design, your first step is to imagine the game before to code, write/draw your ideas on paper (because paper is better than a computer when you need to think about ideas).
 

Edit: Anyway, learning new things is hard, requires commitment and motivation. You can think that learning how to make a game will requires thousands of hours of your time.

coding is probably the hardest thing Ie every tried to tackle in my life. But I will stick to it

       Pumas.EXE has stopped responding...

  • CPU
    RYZEN 5 1600
  • Motherboard
    ASROCK B450 PRO 4
  • RAM
    16GB Corsair Vengeance LPX
  • GPU
    PowerColor RX 5700
  • Case
    Corsair Carbide 275r
  • Storage
    intel 660p 512 GB
  • PSU
    PowerSpec PS650BSM
Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, Pumas_committed_bottleneck said:

coding is probably the hardest thing Ie every tried to tackle in my life. But I will stick to it

Beginning programming is really hard. But you will learn faster and faster with time.

I learnt programming when I was 16 and I'm 31 now. I live from it and when I teach to others, I feel the pain; especially when they see how quick an experienced like me programmer can be.

Link to comment
Share on other sites

Link to post
Share on other sites

Have some project. I’m guessing you learned HTML/CSS/JavaScript 

or python or java. 

 

For web development make a website about cats & buying cat products. 

 

For python or java, make all manners of calculators. Learn to use libraries & then make your calculators have GUI. Don’t know what to calculate? Google a physics textbook & have it calculate problems in the book. 

Link to comment
Share on other sites

Link to post
Share on other sites

Set a goal and go achieve that goal. By time you achieve that goal you'll have struggled through the hard parts, achieved somethat is useful and learned a tonne of skills in the process. Rinse and repeat. It's a tried and tested way to improve :). For me personally, the best motivation is when I see I've achieved something.

 

Also, set achievable goals. If the goals are too big you might not want to do it anymore. Small goals that eventually get bigger and bigger. You could maybe start focusing on a small topic. Even if the goals are extremely small, over time you'll get a tonne of knowledge. When I was younger, I was in programming communities for a good 6 years before I really began to get decent at programming - just spending that time reading the things people had done etc really did help develop a technical mindset IMO.

 

All the best dude :D 

Link to comment
Share on other sites

Link to post
Share on other sites

I used to choose a childhood game or board game and try recreating it with HTML/CSS/Javascript. Spending days and months with many chrome tabs opening W3School. Just code and google whenever get stuck.

Link to comment
Share on other sites

Link to post
Share on other sites

When starting programing try to use simpler concept. For games try to reduce visual interaction to a minimum. Will be easier to follow and learn the most important things. You can add interaction to improve. Games like hangman can be as simple as a console app but you can transition to basic gui with text fields, buttons and images but it can also be upgraded to OpenGL, animation, 3d effects.

Link to comment
Share on other sites

Link to post
Share on other sites

Pick a project and do it. Just ask a search engine for everything you don't know, which will be everything. Just pick a project that isn't too ambitious. It helps if it's something you want.

Link to comment
Share on other sites

Link to post
Share on other sites

Harvard publishes a free course called CS 50. I would also look at scratch, even if it seems childish, because it teaches you the very basics of how code works. You can also do some programming, and you can try 3d game design in Unreal Engine. There are also plenty of courses on YouTube for all of these. 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×