Jump to content

Looking for my path as a programmer

DarkDragon2K04

I'm a teen and I'm sort of a beginner at programming. Schools in my country don't have programming as part of their curriculum and there aren't people around me into programming. I've been into it for about six years but never had enough time so after each holiday I usually had no time for it until the next holiday. That's changed for the last nine months and a lot more since this whole lockdown thing began in my country since the end of March. I began with python and moved to learn java. I was able to learn and understand concepts like variables, loops, functions, object-oriented programming, etc. I moved to java because I wanted to find something that I could use what I  was learning on and I originally thought I wanted to go into android development. It ended up that I found out from that and my earlier experience with HTML and CSS that I only loved the programming and logical side of all this and I'm not really into UI design and all that since its not a set of instructions or formulae like things and I'm not really good at that. So now I have nothing to use to practice my java with even though I've continued with learning it. And as this goes on, learning something without having a purpose for the knowledge I've and still am acquiring, I'm becoming less passionate about what I'm doing. Now that I've got a lot more time on my hands I'm trying to find something I can use what I'm learning for. The problem is whenever I search for different programming languages and their uses java included I keep seeing things like native, frameworks, etc. And the explanations I keep seeing aren't helping to explain what those things are so I don't know what path I want to go on with programming. I wouldn't mind continuing java or going for a new language with the time I have on my hands just that I just want an understanding of what different programming languages are used for so I can use that to help with my path.

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, DarkDragon2K04 said:

I'm a teen and I'm sort of a beginner at programming. Schools in my country don't have programming as part of their curriculum and there aren't people around me into programming. I've been into it for about six years but never had enough time so after each holiday I usually had no time for it until the next holiday. That's changed for the last nine months and a lot more since this whole lockdown thing began in my country since the end of March. I began with python and moved to learn java. I was able to learn and understand concepts like variables, loops, functions, object-oriented programming, etc. I moved to java because I wanted to find something that I could use what I  was learning on and I originally thought I wanted to go into android development. It ended up that I found out from that and my earlier experience with HTML and CSS that I only loved the programming and logical side of all this and I'm not really into UI design and all that since its not a set of instructions or formulae like things and I'm not really good at that. So now I have nothing to use to practice my java with even though I've continued with learning it. And as this goes on, learning something without having a purpose for the knowledge I've and still am acquiring, I'm becoming less passionate about what I'm doing. Now that I've got a lot more time on my hands I'm trying to find something I can use what I'm learning for. The problem is whenever I search for different programming languages and their uses java included I keep seeing things like native, frameworks, etc. And the explanations I keep seeing aren't helping to explain what those things are so I don't know what path I want to go on with programming. I wouldn't mind continuing java or going for a new language with the time I have on my hands just that I just want an understanding of what different programming languages are used for so I can use that to help with my path.

Well as a programmer what I would recommend you to do is thinking about which type of programming you want to dedicate to, for example, if you want to be an app developer, software developer, game developer (like myself), website developer and so on, and if you want to take care of the front-end or back-end of it. With this in mind there is like a tiny list of languages that you can keep in mind for each of the branches I've just spoke about.
So for game development you have languages like C#, C, C++, UnrealScript with SQL for servers (an example of them). C# is very beginner friendly meaning you learn it really quickly and you can do a lot from prompt to windowed programs.
For software you have JavaScript, Python (machine learning and data mining / analysis), Java, C#, C and C++.
For web, well you know the drill already, HTML5, CSS3, JavaScript, ReactNative too. PHP for back-end for example.

For app development, honestly? the "best" is Kotlin, which in my own opinion java would do a better job, since Kotlin is a bit hard to go around and there isn't many "experts" about it, even Google struggles with it. So you can always use a framework where you can program in a language that you suit yourself with and with that they simply make them an .apk or whatever you need, I'm talking about frameworks like Apache Cordova for example. (I don't have much information here since it's not my area of studies either way).

Explaining what a framework is, basically when you code in like .NET or Apache Cordova, are basically like a "structure" where you code at. That "structure" will make it possible so you code for example in C# but you can let's say "export" it as C++ or whatever language you might need. Apache Cordova for example you can code in C# or JavaScript (you can code in others too) and make them usable for android and iOS, being these converted into Java, Kotlin, XML, or whatever it needs to be converted to.
About native languages, it's basically languages that doesn't need to be converted to be ran in the platform you're using (minus the conversion to binary) like C and C++ on Symbian. (One thing about native languages, you need to care about memory leaks and memory allocation etc, you need to handle the code correctly so no erros will be made by the machine).

A managed language is a language that calls an API on the platform that will convert it into another language to be finally be converted by the processor. In these types of languages, you no longer worry about the memory leaks and etc, since the API will instantly tell you what's wrong. (AKA garbage collector). In this set you have the most of the languages you can think of, C#, Java and etc.
Then you have dynamic languages, which is basically a language similar to a managed language, but no matter what you put there it will always run. Besides this you can always edit the code in runtime meaning any changes you make will be seem in runtime, while in C/C++ you can't do this.

(Note: some newer compilers are starting to have dynamic compilers in managed languages, meaning even if you're coding in a managed language you can do runtime editing)

Examples:

  • Native Language: (C)

char c = 'a'; (it will allocate 1 byte of memory for that character)

  • Managed Language: (C#)

int c = 52; (it will tell to the language interpreter to allocate c memory for variable when c is not used. The memory will be released by the language manager whenever c is not relevant or used (garbage collector)

  • Dynamic Language: (Python)

c = 52

c = "A"

c = false (doesn't matter whatever you put it but the code will always compile, doesn't matter if c is a bool, string or int.)

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Ok. The first trick is to learn about carriage returns and/or newlines. That makes everything from your code to your, ummmm, forum posts more readable.

 

On 6/8/2020 at 5:33 PM, DarkDragon2K04 said:

I'm becoming less passionate about what I'm doing.

That's the real core of the problem right there.

Forget about computers for a moment. What are you passionate about? In what ways can computers benefit those areas?

Answering those two questions will provide you quite a bit of guidance on what kinds of things you want to do with computers. Only after you answer that question can you really figure out which direction to head in.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

I'm aware this is about programming but you could give IT a shot too, I've found that things like DevOps and Cloud, along Linux administration are often interesting topics for "logical" people (quoting you) who aren't that interested in programming :D

 

Give it a shot, you got nothing to lose.

Link to comment
Share on other sites

Link to post
Share on other sites

I think you need to think about what you want computers to do.

If you think computer should be easily transported & help with basic easy functions, learn more about mobile development with Android studio.
"I like that my phone can do stuff. It'd be pretty sweet if my phone could do this..."

 

If you think computer should operate cards, maybe you want to learn some robotics. You can either work with Arduino using C ( @Dat Guy's favourite language.) Or you can try "Robot C" also sporting C. Robot C can compile to Vex components or you can use some Lego Mindstorms. Mindstorms do come with their own programming thing, but I don't how well it works.

 

Perhaps you like graphics cards & motherboards. You can learn about programming drivers & BIOS/UEFI.

Operating systems might also be your cup of tea. Aside from linux there's a few student oriented OS so I hear. University courses (Even if you're not old enough for college) may be helpful. Community colleges or online colleges could be a lower cost university if you're in the USA. Other regions idk how the system works.

 

Maybe you like graphics. Why not make some sort of rendering? Video Games, Animation Software and so fourth all need graphics code. Disney worked very hard to create the water system for Moana, whoever made Warcraft movie put a lot into computer rendering hair. Tarzan (The 2D movie) had a huge computer system plot out and render all those tree branches no one noticed in the background. Shaders for video games are also very important. Anything that is drawn to the screen. Colour, shape, blur, reflection... everything.

 

Maybe you like science & physics. Why not work at making some science apps. Why not work on physics simulations & engines. Engineers need software to design aerodynamics of cars & airplanes. University students need the aerodynamics of a cow

 

Computers are entirely what you make of them.

I play a game called Warhammer. We design our armies on paper. Or we download an app called battlescribe that has all unit information & helps us design our armies.
With quarentines, I can't go play at the store or gaming club. I play Warhammer on a game called tabletop simulator. I download graphics & models of the pieces & connect with people online that live half the world away to play warhammer.

I also like airsoft & paintball. Some of these guns use electronics to actuate the firing controls. Setting a specific rate of fire & whatnot.

 

Maybe you are into business. Maybe setup a business app. Ueber made taxis easier. Door Dash made ordering food easier. Dominos did the same thing but people hate dominos for like no reason. Businesses need to scan items to sell them. Someone wrote the program that makes it easy for stores to sell stuff.
When I worked at a store, we had these little PDAs and you can scan items to find out where they belong in the store. "This item belongs in aisle 4, section 5."

 

Some guys like hacking. That's valid as well. Hacking is actually the good guy term & cracking is the bad guy term. These guys make security software, VPN, or work for governments. Some are attacking other countries to gain information. Some are attacking their own countries to find vulnerabilities before other countries do.

IT is also valid. You can write easy scripts to help you out.
"I have 50 new computers & they all need microsoft word installed & we are using google chrome. Do I want to manually do that? Not really. Let me write a windows script that configures & installs everything & run the script on the 50 computers."
Boom, programming solved 50 problems in 1 step. Any computers need to reset? Okay, wipe & re run the script.

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

×