Where should I start programming, How can I be a good programmer?
Tags: programming, productivity, motivation
Published: 2023-02-10 06:30:16

## Foreign Language

Foremost, if you have a foreign language problem, you have to deal with it before you start programming. “Can’t it be done without a foreign language?” The answer to the question is not yes. Because almost all documentation and resources are available in English, and you need to constantly read and research to improve yourself. In addition, improving your language will enable you to communicate with employment opportunities and other communities and will allow you to receive information directly.

## Communications Skills

Good communication skills directly correlate with good development skills. The ability to communicate is crucial for understanding problems clearly, being able to break them down into hypotheses and propose solutions in a coherent manner. You should be able to learn concepts quickly. And yes, this is a skill that improves through practice.

If English is not your first language, make sure you know it well and can communicate it effectively. In the world of technology, English is the de facto language of most documentation and developer interactions. If you don’t speak it well enough, interpreters or translators may be required, making your knowledge second hand and easily outdated.

## Desire to Learn

The desire to constantly learn and improve will make you different from other people throughout your life. Although we are not likely to see this difference immediately, as time passes, the sense of awareness in ourselves and the satisfaction of knowledge will remind you that you are a few steps away from success. If you want to be successful while starting this process, you should want to be a lifelong student, that is, to learn lifelong. Answering the question “Which language should I learn?”; Each language has different uses, pros and cons. What matters is what you want to do. Purpose-oriented learning will save you time. Choose what you want to do and learn the most popular language used in that field.​

## Foster deep knowledge

Carefully select the technologies you want to work with. Aim to become an expert in a couple — but competent with many. Research skills carefully and you can future-proof your career. I’ve answered a question about this on Quora, which you may want to take a look at. Always follow coding standards and write code that is understandable and commented where necessary and can be passed on to someone else easily. This was always important, but in the remote age, it’s essential.

## University​

Firstly, I recommend you to get into a good university and study in one of the departments of Computer, Software, Information Engineering. Studying in these departments will give you the opportunity to learn computer science. The most important point here is to study in a good school. Because a good university hosts good teachers, and good teachers improve your horizons. It also has other advantages. A good university means competition, and too much competition will force you to improve. Remember that studying at a good university will not save you. In general, the biggest mistake people make is to immerse themselves in entertainment, travel and games when they go to university. Of course, they should be, but in moderation. Suggestions that will take you forward while reading;

* Entering and managing clubs according to your interests at school, if not, establishing and managing them. This will both socialize you and give you the ability to manage.

* In general, student projects are opened every semester. This is opened by your department teachers and participate in projects where they have successfully built (high grade point average) and developed over the course of a semester or a year. This both improves you and provides a plus in your business life. You also have the chance to win a scholarship in some projects.

* Although not always, some projects are carried out jointly with large companies and organizations. Participate in these projects. In some cases, a monthly payment is provided to the student.

* Do an internship in a company every summer while you are studying, do it in different fields so that you can discover your field of interest and make yourself liked by the people there as much as possible and communicate well, this will open many doors in your business life in the future.

* Do an Erasmus or Erasmus internship. This will provide you with the chance to see abroad, as well as the opportunity to study with different people and see different working disciplines.

* Working while studying. Working part-time in a company will take you further. It will teach you to stand on your own feet, as well as to see what it is like to work. If you can’t find a job, earn money by doing homework. There are sites that work with domestic or international companies, and you are paid for the work you do.

* There is a process called co-education in the last period of school. You get some of your courses counted, work in a company for 6 months, prepare a report and present it to the school, and it replaces your courses of that semester.

Even if you apply any of these items, it will move you forward a lot. Do as much as you can. “I’m studying at a bad university, what should I do?” answer the question; Try to apply the above items and raise your grade point average as high as possible. Remember that 4 years at university will shape your 40 years. If you work hard and invest in yourself while you are traveling, you will only enjoy your life in the future.

## Can it be done without studying at university?

Yes it does. Up to 15% of the employees of large companies such as IBM and Google are without a diploma. It is unnecessary and absurd to pay for a course or a place to learn a language or a programming language first here. Because you can access everything on the internet for free. Complete item 1st and 2nd. Once you’ve dealt with them, you can access unlimited information from the following sources.

* YouTube: freeCodeCamp, MIT OpenCourseWare, CS50, etc.

The second channel is the Massachusetts Institute of Technology (MIT) university, which videotapes and uploads all its lectures and allows you to get the same education as the people there, even if you don’t go there. You can turn on the translation in the subtitles section of both channels and watch.

* Websites: Coursera, Udacity, Khan Academy, GeeksforGeeks, etc.

* Form Sites: It is possible to learn the information you want from the form sites in the form of question and answer and with virtual dialogue as content.

* Books: I recommend it for those who love to read and learn in depth. You can buy any book you want and improve yourself.

* Documentation: There is also a section called documentation, and this is the most important part. They don’t teach in this school or anywhere else. You can access the documentation of any language, library or framework you want. The people who created these languages and tools prepare these documents and explain everything.

## Have a positive attitude

It doesn’t matter how hard you work, if your attitude is bad, you won’t get very far. It’s important to show that you care about your work and that you are willing to go the distance to get the job done. A good way to keep a positive attitude is to work on projects that are interesting to you. It sounds obvious, but many people will agree to roles they have no interest in. Playing it safe won’t make you a great developer!
Keep Up to date with new technologies

There is no point in being an expert in dates tech. You should be highly competent with Agile development, task management software (Jira, Trello…), version control (Git…), and different environments (local development environment and working knowledge of deploying applications).

## Learning Ability

Every programmer will experience a situation where they don’t know an answer. The great programmers will work to find that answer. They will look at different resources, talk to the right people and find the solution no matter what. Great developers have mastered the skill of self-learning.

## Time Management

It’s important to be reliable and show up at meetings on time. If you want to be great at what you do, you should be able to manage your time effectively. Another vital skill is the ability to estimate the amount of time needed to complete a task, communicating this and delivering on it.

## Be a Team Player

Great developers help other developers improve. They offer teammates help when they are stuck, teach new skills to others and write documentation that would help teammates not only in their organization but the developer community in general.

## Expertise is overrated

As much as specific skill expertise is important, it shouldn’t be the single factor you focus on. A great [insert any skill here] developer is not necessarily a great developer. It’s the addition of the soft skills above that make them great. The ability to learn quickly and jump into a project seamlessly, to help others out, to always have a great attitude. These are the skills that make you invaluable to a business. Consider implementing some (or all!) of these characteristics, and you can easily become a good (if not great) programmer much faster.

> “We don’t have to be smarter than the rest. We have to be more disciplined than the rest.” -Warren Buffett