Code is written for other programmers, not for machines.
Hackathons are not a way to determine if you’re a good, knowledgeable or experienced programmer. But if you’re good at Hackathons. At most of their part they are not related to the real life application of programming.
Code is supposed to be as clean, organized and readable as possible for humans to read. Even if that comes to a 1 nano second expense of computer computational power. Computers are too powerful today to care about that extra 1 nano second. But humans are not that powerful to understand what you’re writing on that one liner brain fucker.
You’re not supposed to make your own scripting languages and hacks INTO the language (or out). — Go back to (2). — Syntax and all sorts of standards exist for a reason and you are not supposed to surpass them just because you feel like it.
Programming
Thinking an algorithmic problem in a way of how you would solve it in a specific programming language is the wrong way of doing it. When solving a problem you’re not supposed to think with “Whiles”, “Do Whiles”, “HTTP PUT Requests” and other technicalities. But how you would solve the problem in the real world if YOU were the one that had to solve it. Not the programming language or the library. THEN, when you finally solve it yourself, you start going top down and slowly finding out how you will do it in a more restricted environment. Not the other way around.
There is NO TOP BEST LANGUAGE to learn. All languages are tools. Choose what fits you more. - Python is NOT for real-time applications, if you like python and you want to make a real-time enterprise application with it just because you like it, you’re doomed to fail or to be fired in the future because you made a personalized decision instead of a project oriented one, and you made an app which runs as slow as a snail. - If you like C++ and you want to apply it everywhere like it’s butter, you’re also deemed to fail because C++ is a complex nitpicky language to debug and organize with and projects become x100 harder to deal with it. - If you like NodeJS but you want to make Computer Computations (like machine learning) with it, then you’re deemed to fail because computer computations break the event asynchronous flow of NodeJS. — And yada yada. One language is not for every job and every language has it’s advantages and disadvantages. There is no superior one.
Learning as many programming languages as possible doesn’t make you a superior programmer. Languages are tools. You wouldn’t learn how to screw drive if screw driving wouldn’t be useful. So why do you do that same thing with programming languages? You are doomed to forget how that programming language works, what it’s standard library is and even some of its syntax after some time of not using it. Especially when you’ve learned 5 other computer languages on the go and 1 million other new things throughout the month. Experience makes you better, not just pure knowledge of a programming language. Find something you want to be good with and become an expert at it, don’t become the “all around guy” because at the end you’ll become good with nothing.
Programming your new 1 billion dollars project is doomed to fail if you don’t think and organize your thoughts, project directory/folders and files, and if you don’t design it properly. So, one day I decide to make a new project. So I start with main.cpp, index.js/ts, Main.java or whatever. Start programming in the main file. It starts getting huge. So I start dividing that main file into many pieces. Now the directory starts looking like a flood of coding files with strange names and scripts. Shit! I’m bored already of this project, because organizing that crap is gonna be super hard. I’m MOVING ON TO THE NEXT BILLION DOLLAR PROJECT.That is a main reason of why most “million/billion dollar” projects fail to even start being developed. Because you think only of the “idea factor” rather than thinking of the “HUMAN FACTOR” and how you would maintain the project throughout the process. You think of it like you wouldn’t need to hire employees in the future and that you wouldn’t need to educate them. Or how not to make your job harder in the future.
Starting a new project is supposed to be as organized as possible. Creating it’s API ahead in a language like RAML or OpenAPI. Designing the Flowchart of how it would work overall. Organizing the directories into `Services`, `Database Models` and other useful distinctive names for each block of your application. Designing the database tuples. The application architecture and coding design and standards. These are things that are supposed to make your life easier! Not harder! If you organize it like a chaos, chaos itself will kill the project.
0 Comments