Как пишется код программирования


Download Article


Download Article

As technology becomes more and more accessible, the need for programmers is always increasing. Coding is a skill learned and perfected over time, but everyone has to start somewhere. There are a variety of languages that are perfect for beginners regardless of the field that you’re interested in (ex. JavaScript, etc. JavaScript is quite advanced, so start with HTML or CSS). See Step 1 below to learn how.

  1. Image titled Code Step 1

    1

    Don’t worry too much about what language you pick. Many beginning coders struggle with what language to pick when they first start learning. (Because they don’t know where to start with their first code). The actual language that you start learning on doesn’t make a big difference when it comes to learning about data structures and logic. These are the skills that matter most, and they can be honed with any language.[1]

    • When picking a language, just focus on what kind of development you want to start with and pick an introductory language from there. For example, if you want to learn web development, start with HTML5, supplemented with CSS, JavaScript, and PHP. If you want to want to do desktop applications, start with C++ or another basic programming language.
    • If you make coding a career, you will find that you may never use the language that you first learned to code. Instead, you will be learning languages as you go through documentation and experimentation.
  2. Image titled Code Step 2

    2

    Find free resources online for the language you choose. The internet is a treasure trove of free tutorials, classes, and videos, all tailored towards the language of your choice. You can start getting a basic grasp of just about any introductory language in a day.

    • Popular sites include Bento, CodeAcademy, Code.org, html.net, Khan Academy, Udacity, W3Schools, Code School and many more.
    • There are a variety of language-specific starter guides available right here on wikiHow.
    • You can find how-to guides for almost any programming scenario on YouTube.
    • Stack Exchange is one of the more popular Q&A sites for any programming questions you may have.

    EXPERT TIP

    Archana Ramamoorthy is the Chief Technology Officer, North America at Workday She is a product ninja, security advocate, and on a quest to enable more inclusion in the tech industry. Archana received her BS from SRM University and MS from Duke University and has been working in product management for over 8 years.

    Archana Ramamoorthy, MS

    Our Expert’s Story: «I came to coding with zero background in either computer design or programming. When I wanted to learn to code, I started by reading Java books and using online information. In today’s world, there are so many resources available, so it’s very easy to learn new skills!»

    Advertisement

  3. Image titled Code Step 3

    3

    Download a good text editor. Many programming languages allow you to use external text editors when you write your code. Find a text editor that will allow you to see indentations and code markup.

    • Popular programs include Notepad++ (Windows), TextWrangler (OS X), JEdit, or Visual Studio Code.
  4. Image titled Code Step 4

    4

    Download any necessary compilers. Some programming languages require a compiler in order to run the code that you create. Compilers translate the code you write into a lower-level language that the machine can process. Many compilers are open-source and free to use. Languages that require compilers include:

    • C
    • C++
    • C#
    • Java
    • BASIC
    • Fortran
  5. Image titled Code Step 5

    5

    Start your first project. Pick a good introductory project that will help you get your feet wet. There are a variety of suggestions and tutorials online, but some places to start are basic websites for HTML, basic database and form functions with PHP, or simple programs with any of the compiler languages.

  6. Image titled Code Step 6

    6

    Comment all of your code. All programming languages have a comment feature that allows you to enter text that is ignored by the compiler. This allows you to add comments to your code. These comments are crucial, both for letting others know how your code works and for reminding yourself what your code does.

    • You can also use the comment function to quickly remove code from your program for testing purposes. Put comment tags around the code you want to exclude and then remove the comment tags to return the code.
  7. Image titled Code Step 7

    7

    Pick apart other programs or web projects. When you’re learning as you go, don’t be ashamed to look things up and see how others have tackled the same tasks. Take time to understand why the code is doing what it does.

    • See this guide for details on how to view the source code of websites.
  8. Advertisement

  1. Image titled Code Step 8

    1

    Take classes. Community colleges, tech schools and online programs offer certifications and classes that will help you get a job as well as teaching you programming. An advanced degree like Computer Science is not always necessary, but could help to get a full time programming job.[2]

    • (A lot can be said for having one-on-one time with a teacher or programming expert, something that isn’t always available with online sources.)
    • Classes can get expensive, so weigh the benefits. If programming is just a hobby, classes may not be worth the time and money. If you want to turn programming into a career, classes can give you a big boost (but again, it’s far from necessary if you have the talent).
  2. Image titled Code Step 9

    2

    Expand your knowledge. Beyond simply learning programming languages, you will benefit a lot from logic and mathematics classes, as these are often required for advanced programming. You don’t necessarily need to learn this at school, but classroom settings can help.

    • Programming involving physics calculations and other simulations requires a strong understanding of algorithms and models.
    • Logic is the fundamental basis of programming, so understanding logic and processes will help you problem-solve when you are coding.
    • Knowing advanced math isn’t required for most programming, but the knowledge can lead to benefits and optimizations.
  3. Image titled Code Step 10

    3

    Learn more languages. Once you’ve got a good grasp on your initial language, you can start to branch out. Find another language that complements the one you know, or pick a language for a specific job that interests you. Complementary languages, such as HTML and CSS, are often the easiest to learn.

    • Java is one of the most popular languages, and there are often lots of opportunities for Java developers. Java can run on a huge variety of systems and has innumerable applications. Java is used for Android applications, one of the fastest growing markets.
    • C++ is highly recommended for developing video games. Learning how to code in Unity (a widely used, low-cost game engine) and UDK (the code for the popular Unreal engine) can help open some doors, though they aren’t as useful outside of the video game industry.
    • If you want to make iPhone apps, Xcode and Objective-C are going to be your primary tools. You’ll also need a Mac, since Xcode can only compile on a Mac.
    • Python is a server scripting language that is one of the easier languages to learn. Python is used for web services such as Pinterest and Instagram, and is simple enough to learn the basics in just a few days.
  4. Image titled Code Step 11

    4

    Be patient. You will often be faced with challenges while programming, especially when it comes to hunting for bugs or implementing a new idea. You’ll have to learn to be satisfied with achieving small results rather than solving a whole puzzle at once. Patience leads to more effective code, which will lead to better-performing programs and happier colleagues.

  5. Image titled Code Step 12

    5

    Learn to work with others. If you have multiple people working on a project, you get multiple viewpoints on how to go about it. Working on teams is virtually unavoidable in the business world, so unless you’re planning to develop everything independently, be prepared to work with others.

  6. Image titled Code Step 13

    6

    Get a job where you can practice your coding skills. Work as a volunteer designing websites or writing desktop applications. A part time job with a small company can lead to opportunities to write code for websites or simple applications.

  7. Image titled Code Step 14

    7

    Connect with other programmers. There are countless communities and gatherings of developers that can help support and inspire you. Look up local programming conventions, participate in a hack-a-thon or game jam (timed events with a common theme), and sign up on some programming forums to start expanding your exposure and network.

  8. Image titled Code Step 15

    8

    Practice, practice, practice. It is estimated that it takes about 15,000 hours before you can be considered an expert in computer programming.[3]
    This is years of applied practice. True mastery of programming will come only after you put the time in to practice and become proficient.

    • Try to spend time programming every day, even when you’re not working. Programming in your free time can lead to breakthroughs and new ideas.
  9. Advertisement

Add New Question

  • Question

    How do I make a website after I learn to code?

    Community Answer

    If you can write HTML, CSS, and Javascript, you can write a coded webpage using a code writer and then you can have your website validated and exported onto the web. There are quite a few websites to do this with online, so look around to find the best choice.

  • Question

    Can I use a moble phone to learn how to creat a code?

    Joshua

    Actually, yes you can. All you will need to make it possible is to have a mobile text editor.

  • Question

    I don’t know a lot about coding, but all of my friends do. I get embarrassed. There are no classes to take in my area, what should I do?

    Community Answer

    If all of your friends know how to code, you should ask them to teach you! There’s nothing to be embarrassed about, they all had to start somewhere too. If you really want to do it on your own, codecademy.com and code.org are pretty good resources for beginners.

See more answers

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Video

References

About This Article

Article SummaryX

To code, start by choosing a programming language that you want to learn, like HTML5 or C++, which are basic languages for beginners. Use free resources online, like video tutorials and blogs. Download a text editor like Notepad++, TextWrangler, or JEdit, and a compiler if necessary. In the text editor, start your first project and use online resources and other websites and apps for inspiration. For more experience, try taking an online class, or learning a different language. For tips on completing your first project, read on!

Did this summary help you?

Thanks to all authors for creating a page that has been read 392,803 times.

Reader Success Stories

  • Ah Zong

    «I am 14 years old. I always wanted to be a programmer. I searched on Google about programming all by myself and…» more

Is this article up to date?


Download Article


Download Article

As technology becomes more and more accessible, the need for programmers is always increasing. Coding is a skill learned and perfected over time, but everyone has to start somewhere. There are a variety of languages that are perfect for beginners regardless of the field that you’re interested in (ex. JavaScript, etc. JavaScript is quite advanced, so start with HTML or CSS). See Step 1 below to learn how.

  1. Image titled Code Step 1

    1

    Don’t worry too much about what language you pick. Many beginning coders struggle with what language to pick when they first start learning. (Because they don’t know where to start with their first code). The actual language that you start learning on doesn’t make a big difference when it comes to learning about data structures and logic. These are the skills that matter most, and they can be honed with any language.[1]

    • When picking a language, just focus on what kind of development you want to start with and pick an introductory language from there. For example, if you want to learn web development, start with HTML5, supplemented with CSS, JavaScript, and PHP. If you want to want to do desktop applications, start with C++ or another basic programming language.
    • If you make coding a career, you will find that you may never use the language that you first learned to code. Instead, you will be learning languages as you go through documentation and experimentation.
  2. Image titled Code Step 2

    2

    Find free resources online for the language you choose. The internet is a treasure trove of free tutorials, classes, and videos, all tailored towards the language of your choice. You can start getting a basic grasp of just about any introductory language in a day.

    • Popular sites include Bento, CodeAcademy, Code.org, html.net, Khan Academy, Udacity, W3Schools, Code School and many more.
    • There are a variety of language-specific starter guides available right here on wikiHow.
    • You can find how-to guides for almost any programming scenario on YouTube.
    • Stack Exchange is one of the more popular Q&A sites for any programming questions you may have.

    EXPERT TIP

    Archana Ramamoorthy is the Chief Technology Officer, North America at Workday She is a product ninja, security advocate, and on a quest to enable more inclusion in the tech industry. Archana received her BS from SRM University and MS from Duke University and has been working in product management for over 8 years.

    Archana Ramamoorthy, MS

    Our Expert’s Story: «I came to coding with zero background in either computer design or programming. When I wanted to learn to code, I started by reading Java books and using online information. In today’s world, there are so many resources available, so it’s very easy to learn new skills!»

    Advertisement

  3. Image titled Code Step 3

    3

    Download a good text editor. Many programming languages allow you to use external text editors when you write your code. Find a text editor that will allow you to see indentations and code markup.

    • Popular programs include Notepad++ (Windows), TextWrangler (OS X), JEdit, or Visual Studio Code.
  4. Image titled Code Step 4

    4

    Download any necessary compilers. Some programming languages require a compiler in order to run the code that you create. Compilers translate the code you write into a lower-level language that the machine can process. Many compilers are open-source and free to use. Languages that require compilers include:

    • C
    • C++
    • C#
    • Java
    • BASIC
    • Fortran
  5. Image titled Code Step 5

    5

    Start your first project. Pick a good introductory project that will help you get your feet wet. There are a variety of suggestions and tutorials online, but some places to start are basic websites for HTML, basic database and form functions with PHP, or simple programs with any of the compiler languages.

  6. Image titled Code Step 6

    6

    Comment all of your code. All programming languages have a comment feature that allows you to enter text that is ignored by the compiler. This allows you to add comments to your code. These comments are crucial, both for letting others know how your code works and for reminding yourself what your code does.

    • You can also use the comment function to quickly remove code from your program for testing purposes. Put comment tags around the code you want to exclude and then remove the comment tags to return the code.
  7. Image titled Code Step 7

    7

    Pick apart other programs or web projects. When you’re learning as you go, don’t be ashamed to look things up and see how others have tackled the same tasks. Take time to understand why the code is doing what it does.

    • See this guide for details on how to view the source code of websites.
  8. Advertisement

  1. Image titled Code Step 8

    1

    Take classes. Community colleges, tech schools and online programs offer certifications and classes that will help you get a job as well as teaching you programming. An advanced degree like Computer Science is not always necessary, but could help to get a full time programming job.[2]

    • (A lot can be said for having one-on-one time with a teacher or programming expert, something that isn’t always available with online sources.)
    • Classes can get expensive, so weigh the benefits. If programming is just a hobby, classes may not be worth the time and money. If you want to turn programming into a career, classes can give you a big boost (but again, it’s far from necessary if you have the talent).
  2. Image titled Code Step 9

    2

    Expand your knowledge. Beyond simply learning programming languages, you will benefit a lot from logic and mathematics classes, as these are often required for advanced programming. You don’t necessarily need to learn this at school, but classroom settings can help.

    • Programming involving physics calculations and other simulations requires a strong understanding of algorithms and models.
    • Logic is the fundamental basis of programming, so understanding logic and processes will help you problem-solve when you are coding.
    • Knowing advanced math isn’t required for most programming, but the knowledge can lead to benefits and optimizations.
  3. Image titled Code Step 10

    3

    Learn more languages. Once you’ve got a good grasp on your initial language, you can start to branch out. Find another language that complements the one you know, or pick a language for a specific job that interests you. Complementary languages, such as HTML and CSS, are often the easiest to learn.

    • Java is one of the most popular languages, and there are often lots of opportunities for Java developers. Java can run on a huge variety of systems and has innumerable applications. Java is used for Android applications, one of the fastest growing markets.
    • C++ is highly recommended for developing video games. Learning how to code in Unity (a widely used, low-cost game engine) and UDK (the code for the popular Unreal engine) can help open some doors, though they aren’t as useful outside of the video game industry.
    • If you want to make iPhone apps, Xcode and Objective-C are going to be your primary tools. You’ll also need a Mac, since Xcode can only compile on a Mac.
    • Python is a server scripting language that is one of the easier languages to learn. Python is used for web services such as Pinterest and Instagram, and is simple enough to learn the basics in just a few days.
  4. Image titled Code Step 11

    4

    Be patient. You will often be faced with challenges while programming, especially when it comes to hunting for bugs or implementing a new idea. You’ll have to learn to be satisfied with achieving small results rather than solving a whole puzzle at once. Patience leads to more effective code, which will lead to better-performing programs and happier colleagues.

  5. Image titled Code Step 12

    5

    Learn to work with others. If you have multiple people working on a project, you get multiple viewpoints on how to go about it. Working on teams is virtually unavoidable in the business world, so unless you’re planning to develop everything independently, be prepared to work with others.

  6. Image titled Code Step 13

    6

    Get a job where you can practice your coding skills. Work as a volunteer designing websites or writing desktop applications. A part time job with a small company can lead to opportunities to write code for websites or simple applications.

  7. Image titled Code Step 14

    7

    Connect with other programmers. There are countless communities and gatherings of developers that can help support and inspire you. Look up local programming conventions, participate in a hack-a-thon or game jam (timed events with a common theme), and sign up on some programming forums to start expanding your exposure and network.

  8. Image titled Code Step 15

    8

    Practice, practice, practice. It is estimated that it takes about 15,000 hours before you can be considered an expert in computer programming.[3]
    This is years of applied practice. True mastery of programming will come only after you put the time in to practice and become proficient.

    • Try to spend time programming every day, even when you’re not working. Programming in your free time can lead to breakthroughs and new ideas.
  9. Advertisement

Add New Question

  • Question

    How do I make a website after I learn to code?

    Community Answer

    If you can write HTML, CSS, and Javascript, you can write a coded webpage using a code writer and then you can have your website validated and exported onto the web. There are quite a few websites to do this with online, so look around to find the best choice.

  • Question

    Can I use a moble phone to learn how to creat a code?

    Joshua

    Actually, yes you can. All you will need to make it possible is to have a mobile text editor.

  • Question

    I don’t know a lot about coding, but all of my friends do. I get embarrassed. There are no classes to take in my area, what should I do?

    Community Answer

    If all of your friends know how to code, you should ask them to teach you! There’s nothing to be embarrassed about, they all had to start somewhere too. If you really want to do it on your own, codecademy.com and code.org are pretty good resources for beginners.

See more answers

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Video

References

About This Article

Article SummaryX

To code, start by choosing a programming language that you want to learn, like HTML5 or C++, which are basic languages for beginners. Use free resources online, like video tutorials and blogs. Download a text editor like Notepad++, TextWrangler, or JEdit, and a compiler if necessary. In the text editor, start your first project and use online resources and other websites and apps for inspiration. For more experience, try taking an online class, or learning a different language. For tips on completing your first project, read on!

Did this summary help you?

Thanks to all authors for creating a page that has been read 392,803 times.

Reader Success Stories

  • Ah Zong

    «I am 14 years old. I always wanted to be a programmer. I searched on Google about programming all by myself and…» more

Is this article up to date?

Набор практик хорошего кода, не зависящих от языка программирования, опубликовал сайт proglib.io. Примените их, и ваш код будет не только работать, но и читаться.

Программисты в первую очередь работают с языком. Поэтому написание программ похоже на любой другой вид письменной работы. Сначала вы излагаете свои мысли как есть, а затем «причесываете» до тех пор, пока текст не будет легко читаться. Качество кода – результат проявления небезразличного отношения к делу и показатель профессионализма.

Почему важна читаемость кода

Чтение кода происходит чаще, чем написание. Есть большая разница между обучением программированию и реальной работой в компании. Вначале мы и пишем, и читаем собственные программы. Но чем дальше мы продвигаемся, тем чаще нам приходится не писать, а читать код. Чем легче код читается, тем проще с ним работать другим людям.

«Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете», — Джон Вуд в доске обсуждений по C++, 1991 г.

Чем проще читать код, тем проще его сопровождать. Понятный, читаемый код легче тестировать, в нем легче отлавливать ошибки – они не скрываются в его запутанной структуре. Плохо оформленный код неприятно изучать, читать, тестировать, сложно дополнять. Рано или поздно плохой код становится проще переписать.

Эстетическое восприятие кода влияет на удобство работы. Казалось бы, гораздо важнее производительность, возможность модификации, расширения… Но все эти показатели улучшаются, если код соответствует нашему чувству прекрасного. Глядя на качественно написанный код, можно быстро понять алгоритм и то, как работает программа для разных входных данных. Чистый код читается как хорошо написанная проза: слова превращатся в зрительные образы.

Стиль кода определяет его будущее. Стиль и дисциплина продолжают жить в коде, даже если в нем не осталось ни одной исходной строки.

С чего начать: документация по стилю оформления кода

Все дороги программиста ведут к документации. В каждом языке существует свой стандарт оформления кода. Для Python используется документ PEP-8, для PHP – стандартные рекомендации PSR-1 и PSR-2, для Java – Java Coding Conventions, для JavaScript – Airbnb JavaScript Style Guide или Google JavaScript Style Guide. Документ для вашего языка вы найдете по поисковому запросу <Название языка> Code Style.

Когда вы работаете в группе разработчиков, нужно использовать принятые в команде правила. Стиль должен быть единым, как будто код был написан одним здравомысленным человеком.

В популярных IDE заложена возможность автоматической настройки стиля кода под стандарты – общие или предложенные командой. Разберитесь, как настроить среду под необходимое оформление. Потраченное время сэкономит многие часы рутинной работы.

Применение стандартов – лучший подход для новичка. Читающий не будет отвлекаться на оформление и сразу погрузится в тонкости выбранных подходов, а не расстановок переносов. Изложенные ниже правила понадобятся для того, чтобы понять, как действовать в тех случаях, когда стандарт не дает никаких рекомендаций.

Роберт Мартин «Чистый код. Создание, анализ и рефакторинг»

Конечно, мы не могли обойтись без упоминания замечательной книги Роберта Мартина о чистом коде и анализе программ. В ней приводятся примеры для языка Java, но большинство идей справедливы для любых языков.

Всё что изложено ниже, в значительной мере представляет сжатый конспект этой книги с дополнениями из нашего опыта в проектировании программ. Итак, приступим к практикам.

Главное правило чистого кода: выразительные имена

Содержательность. К выбору названий любых объектов нужно подходить со всей ответственностью. Выразительные имена позволяют писать код, не требующий комментариев.

Полезно не только исходно выбирать ясные имена, но и заменять названия на более удачные, если они нашлись позже. Современные среды программирования позволяют легко заменить название переменной во всём коде, так что это не должно быть проблемой.

Сравните. До:

public List < int[] > getThem() {
 List < int[] > list1 = new ArrayList < int[] > ();
 for (int[] x: theList)
  if (x[0] == 4)
   list1.add(x);
 return list1;
}

После:

public List < int[] > getFlaggedCells() {
 List < int[] > flaggedCells = new ArrayList < int[] > ();
 for (int[] cell: gameBoard)
  if (cell[STATUS_VALUE] == FLAGGED)
   flaggedCells.add(cell);
 return flaggedCells;
}

В первом примере непонятно, что вообще происходит, хотя в этом коде нет ни сложных выражений, ни каких-либо странностей. В результате правок сам код никак не изменился. Если знать, что это часть игры «Сапер», то теперь из кода понятно: здесь обрабатывается список ячеек игрового поля. Этот код можно улучшать и далее, но уже в результате простого переименования стало понятно, что происходит.

Избегайте любых двусмысленностей и ложных ассоциаций. Если в объекте перечисляется список, но сам объект не является списком, нельзя в составе его названия употреблять слово list – это запутывает читающего.

Остерегайтесь малозаметных различий – имена объектов должны существенно отличаться друг от друга. По этой причине плохи длинные имена с повторяющимся элементами – чтобы сличить их друг с другом, тратятся лишние силы и время. Избегайте использования в именах переменных строчной буквы L и прописных I, O – они часто путаются с единицей и нулем.

Путаница также возникает, если несколько синонимичных слов и выражений используются для обозначениях разных сущностей, например, controllermanager и driver.

Имя должно легко произноситься. Используйте для названий слова. Если названия состоят из сокращений, каждый начинает произносить их по-своему, что затрудняет взаимопонимание. А при чтении кода каждый раз «спотыкаешься» о такое название.

Имя должно быть удобным для поиска. Слишком короткие имена трудно искать в большом объеме текста. Однобуквенные имена можно использовать только для локальных переменных в коротких методах и счетчиков циклов (i, j, k). Обычно называя объект одной буквой, вы всего лишь создаете временный заменитель. Но не бывает ничего более постоянного, чем что-то «временное». Проверяйте грамотность написания выбранных слов.

Правильно выбирайте часть речи. Классы и объекты желательно называть существительными и их комбинациями: AccountWikiPageHTMLParser. Имена функций и методов лучше представлять глаголами или глагольными словосочетаниями: delete_pagewriteField(name). Для методов чтения/записи и предикатов используйте стандартные префиксы getsetis.

Заменяйте «магические» числа именованными константами. Одно из самых древних правил разработки. Магическими называют числа, о которых сходу нельзя сказать, что они означают. Например: 1001.1421000000. Выделяйте такие числа в соответствующие константы с конкретным названиями. Например, вместо числа 86400 в теле кода приятнее встретить константу SECONDS_PER_DAY.

Не стоит следовать этому правилу, как и любому другому, безоговорочно. В формулах некоторые константы лучше воспринимаются в числовой записи.

Одно слово для каждой концепции. Для одной и той же идеи, реализующей одну механику, используйте одно слово. Например, для добавления элементов одинаковым образом – метод add. Однако, если механика и семантика изменились, потребуется и другое слово (например, insertappend), описывающее новую концепцию.

Ваш код будут читать программисты. Не стесняйтесь использовать термины из области информатики, общепринятые названия алгоритмов и паттернов. Такие имена сообщают информацию быстрее, чем сам код.

Помещайте имена в соответствующий контекст. Например, имена streethouse_numbercity понятнее смотрятся внутри класса Address.

Избегайте остроумия и каламбуров в названиях. Шутки имеют свойство быть понятными лишь ограниченное время и для конкретной аудитории, знакомой с первоисточником. Отдавайте предпочтение ясности перед развлекательностью. Шутки можно приберечь для презентации, которая происходит «здесь и сейчас». Хороший код способен выйти далеко за границы вашей культуры.

Рабочие среды продолжают развиваться. Уже нет никакой необходимости кодировать типы в именах, создавать префиксы для членов классов. Всю нужную информацию можно получить из цветового выделения или контекстно-зависимых подсказок сред разработки. Добавление префиксов убивает удобство поиска по автовыполнению – выпадает слишком много имен, начинающихся с одинаковых символов.

Функции

Компактность. Уже в 80-е годы считалось, что функция должна занимать не более одного экрана. Экраны VT100 тогда состояли из 24 строк и 80 столбцов. В наши дни на экране можно разместить гораздо больше инорфмации, но лучше ограничиться тем же объемом. Самоограничение позволяет видеть точку объявления каждой используемой переменной и держать в уме всю «историю», которую рассказывает функция.

Вполне вероятно, что тот, кто будет сопровождать ваш код, не будет иметь возможности работать на большом мониторе. Например, ему необходимо одновременно разместить на одном рабочем столе экрана ноутбука несколько окон. Среды разработки позволяют установить ограничение, «верхнюю планку» (то есть правую 😉 ).

Блоки if, else, while должны иметь минимальный размер, чтобы информацию о них можно было держать в уме. Старайтесь избегать отрицательных условий – на их восприятие обычно уходит чуть больше времени, чем на положительные. То есть запись if (buffer.shouldCompact()) предпочтительнее записи if (!buffer.shouldNotCompact().

Правило одной операции. Плохой код пытается сделать слишком много всего, намерения программиста расплываются для читателя. Поэтому стоит ввести важное правило:

Функция должна выполнять только одну операцию, выполнять ее хорошо, и ничего другого она делать не должна.

Каждая функция должна делать то, что вы от нее ожидали из названия. Если функция действует не так, как она названа, читатель кода перестает доверять автору программы, ему приходится самостоятельно разбираться во всех подробностях реализации.

«Я люблю, чтобы мой код был элегантным и эффективным. Логика должны быть достаточно прямолинейной, чтобы ошибкам было трудно спрятаться; зависимости — минимальными, чтобы упростить сопровождение; обработка ошибок — полной в соответствии с выработанной стратегией; а производительность — близкой к оптимальной, чтобы не искушать людей загрязнять код беспринципными оптимизациями. Чистый код хорошо решает одну задачу», — Бьёрн Страуструп, создатель языка С++

Исключения вместо кодов ошибок. Используйте исключения (try-catchtry-except) вместо возвращения кодов ошибок. Возвращение кодов приводит к слишком глубокой вложенности.

К тому же при использовании исключений код обработки ошибок изолируются от ветви нормального выполнения. Сами блоки лучше выделять в отдельные функции. Вместе с исключением нужно передавать контекст ошибки – сообщение, содержащее сведения об операции и типе сбоя.

Соблюдайте уровни абстракции. Одна функция – один уровень абстракции. Смешение уровней абстракции создает путаницу, функция обрастает слишком большим количеством второстепенных подробностей. Старайтесь соблюдать ясную иерархию.

Код читается сверху вниз. По мере чтения уровни абстракции должны меняться равномерно. Каждая функция должна быть окружена функциями единого уровня абстракции.

Ограничивайте число аргументов. Чем больше аргументов у функции, тем сложнее с ней работать. Необходимость функций с количеством аргументов большим двух должна быть подкреплена очень вескими доводами. Каждый новый аргумент критически усложняет процедуру тестирования. Если функция должна получать более двух аргументов, скорее всего, эти аргументы образуют концепцию, заслуживающую собственного имени.

Комментарии

Это непопулярное мнение, но в большинстве случаев комментарии – зло. Код должен быть самодокументированным. Комментарий – всегда признак неудачи: мы не смогли написать код так, что он понятен без комментариев. Проверьте, можно ли выразить свое намерение в самом коде.

В чём проблема? Программисты умеют сопровождать код, но не комментарии. В растущем коде комментарии быстро устаревают, частично или полностью переставая соответствовать ситуации. Только код правдиво сообщает своим содержанием, что он в действительности делает. Лучше потратить время на исправление запутанного кода, чем добавлять к плохому коду комментарии.

Однако есть несколько видов комментариев, которые выглядят достаточно оправданными.

TODO-комментарии. Бывает так: нужно было успеть к дедлайну, пришлось писать код быстро, поэтому в нем остались дыры. То есть всё работает, но реализация ущербная. Укажите все недоработки и создайте под них задачи. Каждый комментарий указывает на недоработку или потенциальную уязвимость.

Юридические комментарии. Корпоративные стандарты могут принуждать вставлять комментарии по юридическим соображениям. Ограничьтесь в таком комментарии описанием лицензии и ссылкой на внешний документ.

Предупреждения о последствиях. Иногда бывает полезно предупредить других программистов о нежелательных последствиях:

// Не запускайте, если только не располагаете
// излишками свободного времени.

Комментарий также может подчеркивать важность обстоятельства, которое на первый взгляд кажется несущественным.

По-настоящему плохие комментарии

Бывают такие типы комментариев, которые лучше никогда не делать.

Закомментированный программный код. «Когда-нибудь в будущем расскомментирую этот код, приведу всё в порядок. Или вдруг эта идея кому-то поможет». Любой закомментированный код только ухудшает ситуацию. Все изменения хранятся в контроле версий – удаляйте такой код на корню. Это просто мусор: «потом» равносильно «никогда». Если что-то действительно нужно сделать, создайте краткий TODO-комментарий и задачу.

Мертвые функции – идентичные по смыслу предыдущему пункту функции и методы, которые не вызываются в программе. Пользуйтесь системой контроля версий и без зазрений совести удаляйте любой код, который не используется во время выполнения программы.

Избыточные комментарии. Задайте себе вопрос: стал ли код понятнее после прочтения комментария? Часто комментарии просто загромождают код и скрывают его смысл, излагая очевидные вещи. Иногда в комментарии включаются описания не относящихся к делу подробностей. Но профессионал бережет не только свое, но и чужое время, и не отвлекает читающего без повода.

Журнальные комментарии и ссылки на авторов. Некоторые программисты добавляют комментарий в начало файла при редактировании. Или указывают, кто и когда внес исправления. Когда-то это было оправдано, но теперь у нас есть системы контроля версий – это гораздо лучший способ обозначить границы зоны ответственности каждого.

Позиционные маркеры. Иногда любят отмечать определенные группы и позиции в исходных файлах:

// Классы //////////////////////////////////

Качественно организованный код способен внятно рассказать историю без балластных заголовков.

Уровень файлов программ

Минималистичность. Чем меньше кода, тем лучше. Имя файла должно быть простым, но содержательным. Маленькие файлы обычно более понятны, чем большие. Но размер файла, конечно, не должен быть самоцелью.

Код должен быть максимально линейным. Чем больше вложенность кода, тем сложнее его читать. Следите за тем, как двигаются ваши глаза. В хорошем коде вы двигаетесь строка за строкой, лишь изредка возвращаясь к предыдущим строчкам. Вложенность более трех уровней указывает на то, что с кодом нужно поработать: переписать условия проверок и циклов (использовать return и функциональное программирование), разбить код на меньшие методы.

Отдельные «мысли» следует отделять друг от друга пустыми строками. Каждая пустая строка – зрительная подсказка: описание одной концепции закончилось, далее следует новая. При просмотре кода взгляд концентрируется на первых строчках – в них больше всего информации, как в началах абзацев этого текста.

Тесно связанные концепции, должны располагаться вблизи друг друга. Не заставляйте читателя прыгать между файлами или постоянно скроллить файл. По той же причине переменные нужно объявлять как можно ближе к месту использования. Однако переменные экземпляров лучше объявлять в одном месте, обычно в начале класса (то есть в одном месте), так как в хорошо спроектированном классе переменные используются большинством методов класса.

Пробелы для группировки взаимосвязанных элементов. Пробелы улучшают читаемость кода, если они стоят вокруг операторов присваивания, после запятых при перечислении переменных. В формулах пробелы используются для подчеркивания приоритета: не ставятся между множителями, но отбивают знаки сложения и вычитания.

Отступы. Размер отступов должен соответствовать позиции кода в иерархии. Это общая практика, которая позволяет быстро пропускать области видимости, не относящиеся к текущей ситуации. Не поддавайтесь искушению нарушить правила расстановки отступов для коротких команд.

Некоторые замечания по поводу архитектуры и тестов

В системе должны выполняться все тесты. Тесты – главный способ, с помощью которого можно понять, что система контролируема. А только контролируемую систему можно проверить.

Три закона тестирования по методологии TDD. Тестовый код не менее важен, чем код продукта. Соблюдение следующих трех правил позволяет организовать работу так, чтобы тесты охватывали все аспекты кода продукта:

  1. Не пишете код продукта, пока не напишете отказной модульный тест.
  2. Не пишите модульный тест в объеме большем, чем необходимо для отказа.
  3. Не пишите код продукта в объеме большем, чем необходимо для прохождения текущего отказного теста.

F.I.R.S.T. Качественные тесты должны обладать пятью характеристиками, первые буквы которых образуют указанный акроним:

  • Fast. Тесты должны выполняться быстро.
  • Independent. Тесты не должны зависеть друг от друга и выполняться в любом порядке.
  • Repeatable. Тесты должны давать воспроизводимые в любой среде результаты.
  • Self-validating. Результат выполнения теста – логический признак: тест пройден или нет. Иначе результаты приобретают субъективный характер.
  • Timely. Тест должен создаваться своевременно. Тесты нужно писать непосредственно перед написанием кода.

Повышение уровня абстракции и устранение дубликатов. Все программы состоят из очень похожих элементов, а все задачи программирования сводятся к работе с ограниченным набором действий. Многие из этих действий могут быть описаны в одних и тех же терминах, например, извлечение элемента из коллекции. В подобных ситуациях правильно инкапсулировать реализацию в более абстрактном классе. Повышение уровня абстракции позволяет избежать дублирования и многократно применения одного и того же кода, лучше понять, что действительно происходит в программе, уйдя от частностей.

Если что-то в программе делается снова и снова, значит, какая-то важная концепция не нашла своего отражения в коде. Нужно попытаться понять, что это такое, и выразить идею в виде кода. Избегайте дубликатов, это всегда лишняя работа, лишний риск, лишняя сложность.

Несколько языков в одном исходном файле. Современные среды программирования позволяют объединять в одном файле код, написанный на разных языках. Результат получается запутанным, неаккуратным и ненадежным. Чтобы четко разграничить ответственность, в файле должен преобладать один язык. Сведите к минимуму количество и объем кода на дополнительных языках.

Не нужно бездумно следовать догмам. Не переусердствуйте с сокращением кода функций и классов. Всегда руководствуйтесь здравым смыслом.

Заключение

Чистый код выглядит так, как если его автор над ним тщательно потрудился. Вы не можете найти очевидных возможностей для его улучшения. Попытавшись его улучшить, вы вновь вернетесь к тому же коду.

Чтобы писать чистый код, который бы никого не удивлял, необходимо раз за разом сознательно применять описанные приемы. При чтении чистого кода вы улыбаетесь, как при виде искусно сделанной музыкальной шкатулки. Код можно назвать красивым, если у вас создается впечатление, что язык был создан специально для этой задачи.


Загрузить PDF


Загрузить PDF

По мере того как технология становится все более и более доступной широкой публике, растет и потребность в программистах. Написание компьютерных кодов и программ, оно же кодинг (от английского «сoding») — это навык, который приобретается и совершенствуется на протяжении долгого времени, но даже самый опытный программист когда-то был новичком. Существует большое разнообразие языков программирования, которые великолепно подходят для начинающих программистов, вне зависимости от того, в какой сфере деятельности вы хотите применять ваши навыки (например, JavaScript довольно сложен, так что лучше начать с HTML или CSS). Узнайте, как научиться писать компьютерные программы, прочитав эту статью.

  1. Изображение с названием Code Step 1

    1

    Не слишком волнуйтесь по поводу того, какой язык вам стоит выбрать для изучения. Многие начинающие программисты затрудняются выбрать язык, когда они только начинают изучать написание программных кодов. Непосредственно сам язык, который вы выберете, не имеет значения, когда речь заходит об изучении структур и логики построения информации. Эти навыки являются намного более важными, и их можно выучить с любым языком программирования.[1]

    • Выбирая язык, сконцентрируйтесь на том, в каких целях вы хотите создавать программные коды, и уже потом выбирайте начальный язык. К примеру, если вы хотите заниматься разработкой веб-сайтов, то вам следует начать с изучения HTML5, а затем дополнить его языками CSS, JavaScript и PHP. Если вы хотите создавать компьютерные программы, то начните изучать C++ или любой другой основной язык программирования.
    • Если вы станете профессиональным программистом, то вы можете обнаружить, что никогда не используете язык, который вы изначально выучили, для своей работы. Вместо этого вы будете все время продолжать учить новые языки через документацию и эксперименты.
  2. Изображение с названием Code Step 2

    2

    Найдите бесплатные онлайн-ресурсы, посвященные вашему выбранному языку. Интернет — это сундук с сокровищами, который хранит в себе бесплатные пособия, курсы и видео, посвященные языку, который вы решили учить. Вы можете выучить основы почти любого вводного языка буквально за день.

    • Вот только несколько популярных сайтов: Bento, CodeAcademy, Code.org, html.net, Khan Academy, Udacity, W3Schools и многие другие.
    • На wikiHow тоже можно найти разнообразные инструкции для начинающих изучать языки программирования.
    • Вы можете найти обучающие видео практически для любого языка на YouTube.
    • Stack Exchange — это один из самых популярных форумов, на котором профессиональные программисты отвечают на любые вопросы пользователей.

    СОВЕТ СПЕЦИАЛИСТА

    Арчана Рамамурти — технический директор Workday (Северная Америка). Высококлассный специалист по продуктам, поборница безопасности, сторонница большего распространения интеграции на равных для всех условиях в индустрии технологий. Получила степень бакалавра в Университете SRM и магистра в Университете Дьюка. Работает в области продакт-менеджмента более восьми лет.

    Archana Ramamoorthy, MS

    Наш специалист делится своей историей:: «Я пришла к написанию кодов, не зная ничего ни о компьютерном дизайне, ни о программировании. Когда я захотела научиться писать программы, я начала с чтения книг по языку и с использования информации из интернета. Сегодня в мире доступно так много ресурсов, что научиться новым навыкам очень легко!»

  3. Изображение с названием Code Step 3

    3

    Скачайте хороший текстовый редактор. Многие языки программирования позволяют использовать внешние текстовые редакторы для написания программ. Найдите текстовый редактор, который будет отображать отступы и кодовую разметку.

    • К популярным программам относятся Notepad++ (Windows), TextWrangler (OS X) и JEdit (любая система).
  4. Изображение с названием Code Step 4

    4

    Скачайте любые необходимые компиляторы. Некоторые языки программирования требуют компилятор для отображения исходного кода, который вы написали. Компиляторы транслируют исходный код в эквивалентную программу на языке низкого уровня, которая затем обрабатывается компьютером. Многие компиляторы бесплатны и находятся в открытом доступе. Языки, которые требуют использования компиляторов, включают:

    • C;
    • C++;
    • C#;
    • Java;
    • BASIC;
    • Fortran.
  5. Изображение с названием Code Step 5

    5

    Начните свой первый проект. Выберите хороший вводный проект, который позволит вам испробовать ваши новые навыки. В интернете существует множество предложений и пособий по этой теме. Например, вы можете начать с создания простых веб-сайтов на HTML, простых баз данных и функций на PHP или простых программ на любом из языков, требующих использования компиляторов.

  6. Изображение с названием Code Step 6

    6

    Комментируйте весь свой код. Все языки программирования имеют функцию комментирования, которая позволяет вводить текст, игнорируемый компилятором. Таким образом к коду можно оставлять комментарии. Эти комментарии исключительно важны, как для того, чтобы сообщить другим, как работает ваш код, так и для того, чтобы напомнить самому себе, что делает код.

    • Функцию комментирования можно использовать для того, чтобы быстро убрать часть кода из программы в целях тестирования. Поставьте теги как для комментария в начале и в конце кода, который вы хотите временно исключить из программы, а затем удалите эти теги, чтобы вернуть код.
  7. Изображение с названием Code Step 7

    7

    Рассматривайте детали других программ или веб-проектов. Когда вы учите код на ходу, не стыдитесь искать подсказки в интернете и смотреть, как другие люди решают аналогичные задачи. Уделяйте время тому, чтобы понять, каким образом код делает то, что он делает.

    • Почитайте эту статью, чтобы узнать, как просмотреть исходный код любого веб-сайта.

    Реклама

  1. Изображение с названием Code Step 8

    1

    Запишитесь на курсы. Университеты, колледжи и интернет-программы предлагают программы и курсы, которые не только научат вас программированию, но и помогут вам найти работу. Хотя университетский диплом по специальности программиста не всегда нужен, он может помочь вам найти постоянную работу в качестве программиста.[2]

    • Неоспорима и польза от прямого общения с учителем или специалистом в области программирования, которое не всегда доступно через онлайн-курсы.
    • Обучение на программиста может обойтись вам довольно дорого, поэтому внимательно подумайте, стоит ли оно того. Если вы увлекаетесь написанием компьютерных программ только в качестве хобби, то вам не стоит тратить время и деньги на профессиональные курсы. Если же вы хотите построит карьеру в этой области, то получение профессионального образования может значительно вам в этом помочь (но, опять же, оно необязательно, если у вас есть талант).
  2. Изображение с названием Code Step 9

    2

    Расширьте ваши знания. Вы получите пользу не только от изучения языков программирования, но и от курсов по математике и логике, так как эти предметы часто требуются для программирования на высоком уровне. Вам необязательно учить их в учебном заведении, хотя академическая среда может быть полезна.

    • Программирование, включающее физические расчеты и моделирование, требует хорошего понимания алгоритмов и моделей.
    • Логика — фундаментальная основа программирования, так что понимание логики и процессов поможет вам решать проблемы при написании кода.
    • Знание высшей математики чаще всего не требуется для программирования, однако его можно использовать для оптимизации и других преимуществ.
  3. Изображение с названием Code Step 10

    3

    Выучите больше языков. Когда вы хорошо разобрались с вашим первым языком, вы можете начать учить и другие языки программирования. Найдите язык, который дополняет тот, который вы уже знаете, или же выберите язык, который необходим для определенного проекта. Дополнительные языки, вроде HTML и CSS, как правило, легче всего выучить.

    • Java — один из самых популярных языков, и Java-разработчики всегда очень востребованы. Java используется в самых разных системах и имеет бесчисленное множество вариантов применения. На Java пишут приложения для Android — один из самых быстрорастущих рынков.
    • C++ очень рекомендуется, если вы хотите влиться в ряды разработчиков видеоигр. Если вы научитесь программировать на Unity (широко используемый и дешевый игровой движок) и UDK (код для популярного движка Unreal), это откроет перед вами некоторые двери, однако они не так полезны за пределами игровой индустрии.
    • Если вы хотите создавать приложения для iPhone, Xcode и Objective-C будут вашими первейшими инструментами. Вам понадобится компьютер Mac, посколько компилировать Xcode можно только на Mac.
    • Python — язык для написания серверного кода, один из наиболее легких в изучении. Python используется для таких интернет-сервисов, как Pinterest и Instagram, и он достаточно прост, чтобы изучить основы всего за несколько дней.
  4. Изображение с названием Code Step 11

    4

    Будьте терпеливы. Занимаясь программированием, вы часто будете сталкиваться с проблемами, особенно при поиске багов или применении новых идей. Вам будет необходимо научиться быть довольным достижением небольших результатов, вместо того чтобы решать всю проблему за раз. Терпение поможет вам создать лучший код, а значит, программа будет лучше функционировать и коллеги будут довольны.

  5. Изображение с названием Code Step 12

    5

    Научитесь работать в команде. Если над проектом одновременно работает несколько человек, у них может быть разное видение того, как этот проект должен проходить. Работа в команде практически неизбежна в деловом мире, поэтому будьте готовы работать с другими людьми, если вы, конечно же, не собираетесь разрабатывать весь проект самостоятельно.

  6. Изображение с названием Code Step 13

    6

    Найдите работу, на которой вы сможете практиковать свои навыки программирования. Создавайте веб-сайты и компьютерные программы на волонтерской основе. Подработка в небольшой компании также может открыть возможности для написания кода для веб-сайтов и простых программ.

  7. Изображение с названием Code Step 14

    7

    Общайтесь с другими программистами. Существуют бесчисленные сообщества разработчиков, где вы можете найти поддержку и вдохновение. Ищите конвенции программистов, участвуйте в хакатонах или геймджемах (сборах разработчиков для создания за ограниченное время программ или игр), зарегистрируйтесь на нескольких форумах по программированию, чтобы начать заявлять о себе и обрастать связями.

  8. Изображение с названием Code Step 15

    8

    Практикуйтесь, практикуйтесь и практикуйтесь. По некоторым оценкам, нужно заниматься программированием около 15 000 часов, прежде чем вас можно будет считать настооящим мастером.[3]
    Это означает годы постоянной практики. Вы по-настоящему овладеете мастерством программирования, только когда вложите много времени в практическую работу и станете знатоком своего дела..

    • Старайтесь заниматься программированием каждый день, даже в выходные. Программирование в свободное время может способствовать прорывам и возникновению новых идей.

    Реклама

Об этой статье

Эту страницу просматривали 91 019 раз.

Была ли эта статья полезной?

Понравилась статья? Поделить с друзьями:
  • Как пишется койот на английском
  • Как пишется код для игр
  • Как пишется колтун или калтун
  • Как пишется колено или колена
  • Как пишется код будто