Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

I do not know what to do next

Initiate Mage
Joined
Sep 5, 2016
Messages
3
Reaction score
0
Hello, I am very frustrated.

Before I started programming, I always knew how things worked in theory, but very bad.
I knew that there were if statements, loops, arrays, functions and classes, I knew that they where there, I knew how they worked but never did something on my own.

2 years ago I finally started to get into programming by coding by myself. I was already bored by all those Tutorials because I already knew the most stuff but just not the Syntax.
In this two years I did not even learn anything. I know about if, else, while, for and arrays and I am able to do some simple stuff with them.

In 2019 I started to learn the basics of Python and after a long break I jumped over to Java in October 2020 for about 2 days.
Then did some stuff with Arduino because of school and in December 2020 I started to learn some basics of HTML and CSS because I thought that could be helpful sometimes.
Now I also picked up PHP in January 2021 and I am now able to Select and Insert Stuff with mysqli.

And I am not very happy with that progress.
I have the same knowledge like 2 years ago but I know it in different Syntaxes.
I finally want to stick with something and get deeper into it but I do not know what language I should choose and how I should proceed. I also never learned anything about frameworks, plugins, etc.
I only know Arrays, Conditional Statements and Loops.

I have daily access to a computer since I am 6 years old (now I am 18), and I also used the computer almost daily.
I am very interested and I really want to learn more but I just need something that will help me to get further.
Now as I learned only a bit of PHP I planned to do a project but it would be nothing but just reading stuff out of a database and putting new stuff in.
Its not what I want to do, because I do not feel like it will help me.
I also think about learning a new language like C# or picking another one up again like Python or Java. Or should I learn Javascript with NodeJS and all those Frameworks?

I am just very confused and even after looking up many things (Where do you need which languages, Who is responsible for what, etc. I just do not know where to go on. I know I don't want to be a webdesigner. I want to really program something.
But what?
And how?
What language?
And how the hell do I get better, and not just do some Ducking boring login system with php or boring passwordgenerator with python???
 
Last edited:
Junior Spellweaver
Joined
Dec 29, 2016
Messages
180
Reaction score
101
It honestly sounds like you need a project to do. From what I'm gathering you've been mostly been coding by yourself. Essentially you'll want to share your coding abilities to multiple people, so long as they do the same back.

As for languages, here's a good start.

You'll use PHP when you want to develop backend websites, HTML for frontend
MySQL/MSSQL for database queries, again this is mostly backend.
Python or Java are very useful to make beginner tools. Tools are essential to make your tasks easier whenever possible.
If you already know Python or Java, take C#. You'll most likely enjoy C# a lot if you like crafting tools or GUI programs in general.
Overall, C++ is the go to language for all things alike, but this area is very wide spread.

I think a better question to ask is, what do **you** want to do? You're in a MMO Dev forums, I assume you want to get into MMO development, do you have a game that you like? Perhaps you'll want to put in your coding abilities in that game if possible.
 
Initiate Mage
Joined
Sep 5, 2016
Messages
3
Reaction score
0
I think a better question to ask is, what do **you** want to do? You're in a MMO Dev forums, I assume you want to get into MMO development, do you have a game that you like? Perhaps you'll want to put in your coding abilities in that game if possible.
Well I just knew that maybe here are some people that could help me. I am registered here because I wanted to look at Habbo Stuff 4,5 years ago.
As I said I looked at many things and tried out a few languages but yes, I also think that I need a project to work on.
 
Initiate Mage
Joined
Feb 1, 2021
Messages
4
Reaction score
0
Well I just knew that maybe here are some people that could help me. I am registered here because I wanted to look at Habbo Stuff 4,5 years ago.
As I said I looked at many things and tried out a few languages but yes, I also think that I need a project to work on.



Why don't we code our own game inspired by habbo?

That way we would have to learn server-side languages as well as frontend languages.
 
Initiate Mage
Joined
May 22, 2005
Messages
10
Reaction score
0
programming like with most skills is about having "tools" in your "toolbelt". the progamming language(s) you know is also just one of those tools and is just the tip of the iceberg.


# motivation:
make a (simple) game: -> Game Engine By Language
solve a problem one has like automating a task
curiosity
...

the difference between doing some programming or doing something else. a concrete problem also helps with limiting what one needs to learn next and making it simpler to remember since it is connected to each other. otherwise one dabbles in many things and remembers little after a while.

often the problem one has when starting with programming as a hobby is knowing what is out there. at least knowing what it is about and maybe some experience with it. this will be useful if one does go deeper into the subject in the future.

when you do not have a teacher finding out what exists can be also done with books. look at least at the indexes of books and google about words/topics to find out more without buying hundreds of books.

one should focus on one language for a while in order to gain some experience so that one has something to compare other stuff to later. dabbling into multiple languages is good to discover different ways of doing things. some languages have higher programming patterns added directly to the language. since nothing is truly exclusive to a language you can program everything in someway or another into any other language. an example is programm in an OOP way even in non OOP languages, if you are willing to write code a certain way. you just have to constantly remember that certain way since nothing provents you (or someone else) from doing it dfferently/wrongly. it is just not as easy and safe to use compared to native language features. however much more customizable since you made it yourself.


# languages all programmers should know
regular expressions (regex): this is like the swiss army knife for programmers when it comes to searching, exploring code and when refactoring code in ways beyond the capabilites of ones editor/IDE/tools


# core programming structures
loops, brachning/conditions, functions/procedures, ...

learned with every language but with some differences depending on the language.


# data structures
arrays/lists, linked lists, hashtables, stack, queue, ...




...

programming ist mostly about data. the data that you need to work with decides often how you need to write your program to be efficient with computer resources and limitations (cpu, data size and transfer speeds). if you optimize your programs for the human(user/programmer) by having nice language patterns, that often costs efficiency in memory/cpu. this is because you need to translate between the human optimized layer and the machine optimized layer in your program. in the beginning one tends to think one can have both but you pretty much always have to compromize here for one or the other.


# higher programming patterns (design patterns, ...)
delegates/lambdas/clojures, proxy, factory, dependency injection/inversion of control, domain driven design(every problem has its own (programming) language), data driven design(external files configure internal program, change program behaviour without the need to recompile every time), data oriented design(cpu cache optimisations, SIMD asembly commands), modular desing/decoupling(divide and conquer), event systems, messaging systems, pull vs push, synchrone/asynchrone, prallel/concurrent/multithreading/coroutines/fibers, ORM(object relational mapping), AOP(aspect oriented programming), OOP(object oriented programming), entity systems, microservices, static(compile time) vs dynamic(runtime) programming, imperative vs/with functional, ...



just like core programming structures these are helpful to understand programs faster or to have certain advantages. like not having to recompile the program to change it, easy to maintain source code, easy to merge changes on same code from many different programmers. but because of the may possibilities how these can be implement to be useful, they are often not part of the language itself.


# automated testing
junit(java), cunit(c++), ...

automated testing for everything the compiler cannot check for you. the bigger the code is the more important auto tests become. especially when you want to change/refactor your code. manually testing everything just waste time. you dare not change something for the fear of breaking something. you avoid refactoring/improving code and your code becomes worse and worse to read,understand,bugfix and add new features.


# build systems
c++: cmake, make(old), ...
java: gradle, maven(popular), ant(old)

...

automating common tasks to get your program in a runnable or installable state. like building/compiling, packaging, running automatic tests, deploying. each language tends to have at least some of these.


# version control systems
git, svn(old), cvs(very old), ...

useful to try out ideas or finding code changes. a must when working together with other programmers for merging different code changes together.


# editors: IDE(input device environment), programmable editors: visual studio code,emacs,vim,textmate,sublime text,...
eclipse, intellij, visual studio, ...

free open source IDE for some languages: java, c++, php,
many ide/tools/extentions for different languages, some free some not

having a good IDE is often underestimated. digging through documentation manually or pressing a shortcut to get what you want adds up very fast. one can save huge amounts of time and make things much easier with a good IDE. the ones specific to one language tend to be more powerful. but more and more of the major ones started to support multiple languages, therefore one is less forced to switch the IDE nowdays. there are also programmable editors that are highly customizable but they are usually more work to setup(choosing/install plugins etc), are not as well polished and less feature rich than IDEs. however for smaller edits or for smaller scripts/programs they can be much better as they usually load much faster. at least one PE and IDE depending on language(s) should be in ones toolbelt.


# debugging (step through code one line/command at a time)
learn to use the debugger for your language if it has one. the better IDEs support this more comfortably than in a console window. consider learning some assembly if you use languages thar are close to the metal like c/c++.


# compilers/transpiler/interpreters/virtual machines(byte code, java vm)/code generators/code parsers
ANTLR, bison+yacc, truffle(graalvm)

(rough) steps: lexing, parsing, AST(abstract syntax tree), compiling, linking, assembly, ...

creating your own language can make programming in a certain domain much easier. even without a separate domain specific language (DSL), code is always a mix of several domain language with the main language. DSL are used for scripting, querying or just for helpful short expressions(regex) that do something or describe data in a better way. these are much easier to read, write, find or teach because they are not heavily intertwined with your main language. a separate DSL allows to check/prevent wrong ways of use. also just some simple code generators can ease ones life and save a lot of time in the future, not needing to change many lines by hand which is more likely to have mistakes.


# project management
kanban, agile, v-model, ...

trello.com (kanban)

even just some (kanban) organisational skills can go a long way in saving time and reaching goals. a must when working together with others.


# self health management
like with everything managing oneself is also important.
- set reachable goals so you wont give up or go suicidal, there are limits to how hardcore one can be
- doing a little often instead of much at once is easier to handle since you have enough pauses to recuperate, it might cost you overall more time if switching what you are doing takes long. but the longer the pause the more one forgets
- take care of your health. sitting in front of a screen can mess up your body more than one might think. sit correctly and change your sitting position from time to time, have the screen at the right distance and angle, choose colors for programs that you feel comfortable with watching for hours, move your hands enough so you wont get problems with your fingers/wrists/shoulders/...



and there is much much more depending on what domain one programs for, most of this can be learned without programming knowledge. examples for domain specific knowledge: AI,audio,visual 2D/3D,...
 
Last edited:
Initiate Mage
Joined
Feb 1, 2021
Messages
4
Reaction score
0
programming like with most skills is about having "tools" in your "toolbelt". the progamming language(s) you know is also just one of those tools and is just the tip of the iceberg....

I have to say thanks to this post! You have really hit it on point! You actually inspired me to write a blog article on .

I would be honoured to join up with anyone who wants to learn programming and wants to write code for a game or app of some sort.
 
Initiate Mage
Joined
Aug 30, 2013
Messages
25
Reaction score
9
I would also second game development and C# - Id further suggest looking into MonoGame and using the OpenGL support-its the same graphics engine unity uses (or used to use at least). I also second if anyone would like to colab - I already have a working isometric game with multiplayer support inspired by habbo what is not a retro with a small community of people interested in testing/ world design

Game development is a great way to apply alot of experience you already have, and gain new experiences really working with OOP and wide varying technology from any APIs for launchers/ the server or even just the complexity of larger networking projects - its all experience
 
Initiate Mage
Joined
Jan 25, 2022
Messages
3
Reaction score
0
I realise this thread is a bit old now, however would like to throw in my 2 cents in case someone in a similar position happens upon this thread in the future.

I would recommend that you begin to learn a framework. The framework I would recommend is ASP.NET which is used for building web applications. Believe it or not, but the Microsoft documentation is useful. I'd recommend starting with a guide such as this:

It will help you to get a better understanding of how real world applications are actually made, rather than some typical beginner Java program where you only print to and read user input from a console. You will learn how applications can be architected, using things like dependency injection and clean architecture.

I found the C# yellow book to be very useful when beginning to learn C#. It's free!

There are also some YouTubers who post very useful content around .NET, including IAmTimCorey and Nick Chapsas.
 
Initiate Mage
Joined
Dec 26, 2013
Messages
44
Reaction score
12
I always had fun programming simple games to run in command line for C# or Python :)

Or some simple web based RPG in PHP/MySQL or some other web stack.

C# is cool cause you can apply what you learned to Unity.

Javascript is incredibly useful and can later be applied to userscripts or node.js / electron apps.

Don't get discouraged not knowing what language to learn because because the lessons are somewhat universal and you'll probably wind up using many different ones depending on the needs of your project.
 
Back
Top