Things You Wish To Know If You Are A Newbie Programmer
That chart above shows us what is the demand for Computer Science Education in years between 2008 to 2014. And that blue line kept growing during 3 years to now, 2017.
Yes, I hear “sighs” from you guys. Because as every one of you knows, there are no jobs for every developer in their country. Even in another countries. So if you love your job – or your future job – and keep doing it, read this post carefully.
This post is only for giving the key informations for the newby developers to be a better one than who sits next to them.
What will you see inside?
There are tons of “wishes” in this post that a developer suffered to learn or been told earlier.
And let me tell you that, this is the post that encourages me to write this post.
First rule is deciding what you want to code
Coding is building things that you are dreaming, like JARVIS, ALEXA, FACEBOOK, ANGRY BIRDS or HACKERNEWS. You name it. There are tons of projects in your mind which waits deep inside to become alive. Basically, your goals. If your goal is “learn to code,” without a clear idea of the kinds of programs you will write and how they will make your life better, you will probably find it a frustrating exercise.
Deciding what you want to do in your career in Computer Science is very important. It has a life changer importance in your life.
So, what do you want to code? Websites? Games? iPhone apps? A startup that makes you rich? Interactive art? Do you want to be able to impress your boss or automate a tedious task so you can spend more time looking at otter pictures? Perhaps you simply want to be more employable, add a buzzword to your resume, or fulfill the requirements of your educational program. All of these are worthy goals. Make sure you know which one is yours, and study accordingly.
There’s no mystery about writing code
Coding a software is not a magical thing. You should only focus for the syntax, vocabulary to acquire, function or method logics like in Math. And like all kinds of craftsmanship and art-making, there are techniques and tools and best practices that people have developed over time, specialized to different tasks, that you’re free to use or modify or discard.
And when you got the logic behind the software architectures, it will be piece of cake if you want to learn another language.
What am I trying to say is, if you are writing web projects usually, it won’t be hard for you to understand the difference between using PHP or Django.
You will see that, learning new features of the programming languages and solving problems with this new features will give you great pleasure and delightful jolt to your brain — the kind of intellectual pleasure that made you want to study computer science in the first place.
How can you do this?
Yes, this is the question that you need to ask yourself.
And the answer that you are going to find is, writing code for your own projects as a side projects outside of classroom exercises, and helping other people on their projects. This way you will see different kind of approaches to problems that you’ve solved before, and you might get wonderful ideas too.
First run is hell
And probably won’t the second or third time
When you first start learning to code, you’ll very quickly run up against this particular experience: you think you’ve set up everything the way you’re supposed to, you’ve checked and re-checked it, and it still. doesn’t. work.
There are no any clue that you’ve found to focus on fixing the problem. And if you are lucky enough, you might find one. And run again.
Error again. Not working. Feel free to “Fuck You” in those times. It is really relieving act that you might do.
You might be tempted to give up at this point, thinking that you’ll never figure it out, that you’re not cut out for this.
And if you didn’t come across to this situation before, I encourage you to write C/C++ code. – I would say Assembly, but come on..
But this experience is so common for programmers of all skill levels that it says absolutely nothing about your intelligence, tech-savviness, or suitability for the coding life. It will happen to you as a beginner, but it will also happen to you as an experienced programmer. The main difference will be in how you respond to it.
Let me tell you that, “faith” is the difference between newbies and experienced developers. Faith that things are going wrong for a logical and discoverable reason, faith that problems are fixable, faith that there is a way to accomplish the goal. The path from “not working” to “working” might not be obvious, but with patience you can usually find it.
Someone will always tell you you’re doing it wrong
OMG that is so amateurish
Are these things still giving as lectures in Universities?
WTF, you should be using tabs instead of spaces for indent
Hmm, Na-ah, it is not true
Good one, but we do not need that
Yeah, everybody tried to solve that problem, so feel free to fail.
There are almost always many different approaches to a particular problem, with no single “right way.” A lot of programmers get very good at advocating for their preferred way, but that doesn’t mean it’s the One True Path. And you should be aware of that, if you are good enough to be a wonder kid, some of developers will be in shaking mod. Yes, this is a rare thing, but these things are happening. I am not saying that this will happen to you. I am only saying that be awake to understand the situation.
If you’re coding in a team with other people, someone will almost certainly take issue with something that you’re doing. Sometimes they’ll be absolutely correct, and it’s always worth investigating to see whether you are, in fact, Doing It Wrong. But sometimes they will be full of shit, or re-enacting an ancient and meaningless dispute where it would be best to just follow a style guide and forget about it.
Conclusion is, listen every experienced developers’ approaches to the problems/bugs, how are they solving them. This is very important for you to understand those approaches to decide how you are going to solve that problem on your own, without breaking the coding style of them and adding fresh mind in that algorithm.
Someone will always tell you you’re not a real coder
One of my friend told me once, “I feel like a real developer till the time that I got that Mac. Now I understand that real programmers uses Mac”. And my response was..
“HAHAHAHAHAHAHAHAHA good joke”
Guys, you need to understand your needs. Why the hell you are using shell codes to create a file on your desktop. What is the real reason you are doing that. Didn’t Operating Systems make it easy enough for you to create new files for your desktop with mouse events?
“Coding” means a lot of different things to a lot of different people, and it looks different now from how it used to. And, funnily enough, the tools and packages and frameworks that make it faster and easier for newcomers or even trained developers to build things are most likely to be tarred with the “not for REAL coders” brush.
Your needs are the rulers of your programming life. What I mean is, if one of the IDE or text editor or any package that you already using is meets the needs of yours, it is enough. You do not need to create that file for your desktop from command line instead of using mouse.
Use the tools that make it easiest to build the things you want to build.
As you get more comfortable, you’ll naturally start to find those tools limiting rather than helpful and look for more powerful ones. But most of the time, few people will ever even look at your code or even ask what you used — It’s what you make with it that counts.
Learning the concepts of writing code
There’s no shortage of articles about the “right” or “best” way to learn how to code, and there are lots of potential approaches. Like reading too many books, or watching a tutorial video, or else debugging things that others have written. You name it.
So I can learn from one of them, at least. What is the problem you say?
Almost everybody knows how to print “Hello World” to the screen, or creating a Calculator in their comfort language easily. But when it comes to “real” useful project. Hmm.. You might feel like you were just following directions without really understanding, and blame the learning materials.
When you get to this stage, most of the tutorials and online resources available to you are much less useful because they assume you’re already an experienced and comfortable programmer.
Here is the advice.
Just keep trying new things, learning more information, and figuring out, piece by piece, behind the logic, how to build your project. You will fail more than success results during first attempts. You’re a lot more likely to find success in the end if you have a clear idea of why you’re learning to code in the first place.
If you keep putting bricks on top of each other, it might take a long time but eventually you’ll have a wall.
Think First, Code Later
Most of the developers – well, newbies – are trying to Code first. This is the deadliest mistake that you can do. No matter what, your ideas should try and see the mistakes as early as you can. Because like domino bricks, your one little rookie mistake can cause a disaster either for your project and users of it.
You will try to fix all the bugs in a second that you’ve realized while your project is online. Because you will have very limited time to fix your bugs, if your project is online. Any second that passes during that time, your all users are getting affected by the plague that you’ve deployed mistakenly.
And yes, you’ve solved your problem. Now you can see lots and lots more errors in your alive mechanism.
Whereas, if you would’ve been foresee those problems when you are offline, this wouldn’t be happen, right?
No matter what – if you are not developing new feature for your project – try and solve your all problems in early stages. Maybe minor ones can be ignored, but only the really minor ones.
What am I trying to say is, you should be aware of the consequences that your bugs can cause.
Do not dive into code directly.
So again, think first, code later.
Choose the Language Wisely
After choosing the project you want to give life, you should decide what language you want to use. As I mentioned earlier, you should decide with the idea of which is the most appropriate computer language to your project.
It is understandable that you want to learn another language then you are already using. But again, if it is not going to fit with your needs, then there is no need to play games on that side.
Writing a web project with Django, Ruby on Rails, PHP, Java-Spring is understandable. But why the hell do you need to try C++‘s web framework?
I don’t mean that you should never use that. If and only if it is fitting with your needs, then you should use it. There is no harm on that.
There will be lot’s of friends around you who already used new languages accordingly to their needs. Talking with those kind of people can help you to realize what can be the needs of a project in detail.
Having vision on deciding the language for new project is very rare speciality.
I would suggest you to look into the languages that is being used around the world. This can provide you the vision that you need, plus you can wink to companies which you want to work in the future.
For example, learning Angular, C++, Java and PHP, ORACLE, and completing at least one project with either one of them would stand impressive in your Resume. Basically, Google, Facebook, Amazon, Microsoft, Apple are using these languages in almost %75-80 in their projects.
The CV Monster
Resume preparing is one of the most important part here. After graduating, or even before graduating, you are going to send lots of Resume’s and apply lots of positions either for internship or a full-time job. And assume tht you are the one that the position need. But your CV isn’t well designed. You see the scenario?
You worked so hard to be that person you are right now, who has all the knowledge he/she needs, and yet who doesn’t have a good CV yet.
It’s almost ten times harder to get a job at Google than it is to get into Harvard. With more than two million applicants a year, it seems like everyone wants to work at the search giant says Forbes.
Which leads us to think that – and we already learned it is true – there are robots who views the resumes. So there is a new area here. Preparing your CV as showing your capabilities which fits the company and position needs.
It would really help you to attend a class (maybe online would be faster). Looking into Youtube, Lynda, Udacity, Coursera or Udemy courses will give you the information that you need. Always educate yourself.
Remember this, your resume is your showcase.