What are some things I should be able to do after completing the game?


#1

Hello. This will be my first post, as well as my first real experience with coding. Having fun so far, and it’s not really as hard as I thought (with Python anyways). Will most likely subscribe soon.

But I’m wondering, after I complete all of the single player levels (which from what I’ve gathered means you’ve been taught all the skills available to learn through Codecombat) what are some of things I should be able to do, outside of Codecombat, if anything, with the various languages available to learn here? I’m not even sure what things you can do with any basic coding skills, total noob here.
I took a 2 year Computer Service and Network Administration (A+ and Network+ certifications) and I think we did 1 lesson on coding, which really wasn’t in depth in any way. I’ve recently been wondering about learning to code for a career in the industry, which is how I ended up here. (random article/blog about good ways to learn to program)


#2

Coding is not only about producing text. Coding is a way to think, especially to think like a computer. Given that today Computers are everywhere, that sounds like a good thing to me.

Also you won’t really be able to do anything with the learned skills by itself, because you don’t learn everything. When you have finished the campaign you have the skills to solve any (mathematical at least) problem program-wise, but you have yet to acquire the knowledge of how to interact with the world (e.g. write to a file). But guess what? It’s just another function-call. You already know how to handle that. You don’t know how to show a window. Just another function-call.

You may not write the next Computer Operating System with just the skills learned from CodeCombat. But you learn the basics, and then you can extend from there.
All in all, programmers are extremely lazy. I was once told that there is no problem for which there isn’t already a library (bundled code from other developer). If there is actually such a problem it can be solved by somehow gluing two existing libraries together.
The good thing for you is that you don’t have to reinvent the wheel. You already used a library, the CodeCombat one. It provides you with functions like findNearest, findByType or attack. Now imagine you use a GUI-Library. It will provide functions like drawImage, createWindow or resize. Later in the campaign you will use the Vector-Library. It will allow you to multiply, normalize or add Vectors.
You will usually just have to find the correct library for your problem, and then solve the problem itself.
You want a window that calculates the average network-load? You will probably need some Window/GUI/Frame, possibly Math, maybe a Graph and of course Network. As programmers are lazy, they will call their libraries exactly after what they are doing, which makes searching them extremely easy. It also helps developing software in general.


So you somehow created a working program, you feel awesome, but you realize you will never code the next Windows.
Don’t mind, nobody, not a single person, could (or even did) develop something huge like windows alone[1]. One of the most important strategies in Software-Development (not to be confused with programming!) is Separate-and-Conquer. Instead of tackling the big problem, you tackle the small problems it is made up from. One after another they will fall to you and in the end you will suddenly stand on the top, noticing you have finished what previously looked like an impossible project.


Last but not least it will help you use programs. Sounds weird, but it actually works. Microsoft once asked it’s customers which features they want in the next Word-version. The results were devastating. More than 50% of the features existed already, but most users didn’t find them buried in the submenus. The most successful user-group were the software-developers. For them it was perfectly clear why the features where in those submenus, it was logical to them.
When the Microsoft-Programmers developed Word, they also created the submenus. Because nobody told them how to do it exactly they did it as it seemed logical to them. The result was that Word was only effectively usable by other Software Developers who thought the same way.

This is of course fixed today (no one understands Word anymore). But the problem itself still persists. More often than not programmers do something as it seems useful to them, just because it is the way their software (and likewise their thoughts) are structured. If C is part of B is part of A it makes no sense to put C in the topmost submenu, right? That is exactly what happens in actual software, even if C is one of the more important features of the program.


I hope that I didn’t confuse you too much with this wall of text and look forward to any further questions.
Greetings,
J_F_B_M

[1] I know about Linus Torvalds. He was not alone.