How to quickly switch to coding if you are not from a major?

introduction

        In today's digital age, computer programming has become an important skill. For people who are not majoring in computer science, mastering programming skills may seem like a daunting task. However, with correct learning methods and effective practice, even without a computer science background, you can successfully master transcoding technology. This blog will share some tips and experiences on how to smoothly transcode for non-computer majors.

1. Learn basic knowledge

Before starting to learn programming, it is recommended to learn some basic knowledge, including the following:

1. Understand basic computer concepts

        Understand the basic components of a computer such as hardware, operating system, network, etc. Learning the basics of computers can help you better understand the principles behind programming.

2. Master common terms and concepts

        Be familiar with commonly used terms and concepts in programming, such as variables, functions, loops, conditions, etc. These concepts are the foundation of programming, and mastering them makes it easier to understand and write code.

3. Learn a programming language and become proficient in it

  1. Deep understanding: By focusing on a language, you gain a deeper understanding of its true concepts, features, and best practices. This enables you to use the language more efficiently to solve problems, improving code quality and performance.

  2. Efficient development: Understand a language’s ecosystem of libraries, frameworks, and tools to build and deliver solutions faster during development. You will be familiar with the development environment of the language and master commonly used development tools, thereby improving development efficiency.

  3. Deep specialization: By focusing your efforts on a language, you can achieve deep specialization within that area. You can delve into the language's underlying mechanics, advanced features, and best practices to become an expert in the field and excel in projects related to the language.

       

2. Learning resources

To help you learn programming better, here are some quality learning resources:

1. Online tutorials and courses

        I would like to recommend some platforms where you can learn programming knowledge:

  • codecademy : An online learning platform that teaches programming in an interactive way, offering a wide range of courses in programming languages ​​and technologies.

  • coursera : A platform that offers a large number of online courses, including courses in computer science and programming, offered by universities and institutions around the world.

  • Udacity: Offers career-focused online courses in multiple technical fields, including programming and computer science.

  • edX : A partnership-rich online learning platform offering many high-quality programming and computer science courses.

  • Khan Academy: An online learning platform created by a non-profit organization that provides free programming and computer science educational resources.

  • LeetCode official website : an online evaluation platform mainly for algorithms and data structures, providing a large number of programming questions and algorithm challenges.

  •  FreeCodeCamp: A project-oriented learning platform that provides programming courses from basic to advanced and encourages students to consolidate knowledge through practical projects
  • Bilibili : I don’t need to recommend this. The vast majority of programmers should study at Bilibili University to study for a bachelor’s degree and a graduate degree in computer science.

2. Practice a lot of questions

        The purpose is mainly to improve programming and problem-solving abilities, and to familiarize programmers with various common algorithms and data structures, such as sorting algorithms, search algorithms, dynamic programming, graph algorithms, etc. By solving various types of problems, programmers can better understand and master these basic knowledge, so as to solve problems more efficiently in actual work.

        I would like to recommend some question-brushing platforms to you:

 

1. LeetCode ( LeetCode ): LeetCode is a very famous question answering platform that provides a large number of algorithm and data structure questions. The question types in the question bank cover various difficulty levels, which can help programmers improve their programming skills and problem-solving abilities.

        

 

2. Niuke.com ( Niuke.com ) is an online learning and job search platform for programmers. It provides a rich programming question bank, algorithm questions and online programming exercises for users to improve their programming abilities and perform technical assessments.

        

 

3. Codewars ( Codewars ): Codewars provides a community-driven quiz platform where users can challenge codes written by others and receive ratings and rankings. The difficulty of the questions is graded. Users can choose questions of corresponding difficulty according to their own abilities.

 

4. Topcoder ( Top Website Designers ): Topcoder is a website focused on algorithm competitions, providing a large number of algorithm questions and programming challenges. Users can participate in online contests to compete against other programmers, or practice independently in practice sessions.

        

 

5. Codeforces ( Codeforces ): Codeforces is a question-clearing platform with competition as the main form, providing many programming competitions and training questions. Its questions are of high quality and difficult, and are suitable for programmers with a certain programming foundation and a spirit of challenge.

 

3. Books and documents

        By reading books, you can learn about the latest technology trends, programming languages, frameworks, and tools, thereby expanding your knowledge and keeping up with industry developments. Many books cover common programming issues and best practices in practice. By reading these books, you can learn how other experienced developers think and solve problems, thereby improving your programming skills and code quality.

I would like to recommend some books for programmers to read:

         "Code Complete" - Steve McConnell: This book is a classic about software development practices, covering all aspects of writing high-quality code, including code specifications, construction, debugging, testing, etc. Very helpful for improving programming skills and software engineering capabilities.

 

         "Refactoring: Improving the Design of Existing Code" - Martin Fowler: This book details how to improve and optimize existing code through refactoring techniques. It covers various refactoring methods and examples, and tells how to identify and apply refactoring opportunities.

 

         "Introduction to Algorithms" - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: This book is a classic textbook on algorithms and data structures, detailing the principles of various common algorithms. , implementation and its application. Very valuable for learning and understanding the basics of algorithms.

 

         "Computer Systems: A Programmer's Perspective" - ​​Randal E. Bryant, David R. O'Hallaron: This book introduces the underlying principles of computer systems, including machine-level programming, memory management, concurrency, etc. It helps programmers gain a deep understanding of how computer systems work.

 

3. Practical projects

In addition to learning knowledge, practical projects are also the key to learning programming. Here are some suggested practices:

1. Create a personal website

        Showcase personal skills and works: Personal websites are an ideal platform for programmers to showcase their technical abilities and project works. You can display your code samples, open source projects, technical blogs, etc. on your website to let employers, customers, or other developers understand your work and skills in more detail.

        Build your personal brand and reputation: A personal website can help you build your personal brand and reputation. By sharing your expertise, experience and insights, you can shape yourself in the industry and build a positive personal brand. This helps gain more opportunities and recognition in your career.

        Communicate and collaborate with other developers: A personal website is an important tool for communicating and collaborating with other developers. You can build a personal community on the website, publish blog posts, participate in technical forums, etc. to share experiences with other developers, learn new knowledge, and possibly find partners or mentors.

2.Blog

      The first benefit is: by blogging, you can share the knowledge and experiences you have learned with others. This will be extremely valuable to other beginners or developers who are solving similar problems to yours. When you translate technical knowledge into words, you not only deepen your own understanding of the knowledge, but you also help others better understand and apply it.       

      The second benefit is: strengthening expression skills: blogging is a way to express one's thoughts and opinions. By writing continuously, you can exercise your expression skills, including organizational structure, clear logic, and language fluency. This has a positive impact on career development and improvement of communication skills.

       The third benefit is: Create a personal brand: Blogging can build your personal brand in the technology field. By consistently outputting quality technical content, you can build a good reputation in the technical community and attract the attention of other developers. This has a positive impact on career development, job search and personal image. (The most important thing is to be able to realize it )

        

 

 

4. Continuously learn new technologies

       ① Rapid technology updates: The fields of computer science and programming are developing rapidly, and new technologies, frameworks and tools appear every day. If you stop learning new content, you'll miss out on the opportunities these new technologies bring. Continuous learning allows you to keep up with the latest developments in the industry and stay competitive

        ②Learning new content can help you broaden your skill stack and gain more opportunities in career development. Mastering different programming languages, frameworks, and tools can make you useful in a variety of projects and increase your employment opportunities.

in conclusion

        Although not having a computer science background may make it more difficult to learn programming, with the correct learning methods and continuous practice, people without computer science classes can also switch to coding smoothly. It is important to maintain a passion for learning and a persistent effort. I hope this blog will be helpful to non-computer major transcoders, and I wish you success in the world of programming!

Guess you like

Origin blog.csdn.net/m0_73367097/article/details/132334886