• ↓
  • ↑
  • ⇑
 
Записи пользователя: TeachCoding (список заголовков)
18:51 

The Absolute Minimum Every Software Developer Must Know About Unicode

Вдруг кому? Вряд-ли все читали, да и мне например было полезно освежить память и перечитать.
23.09.2015 в 11:11
Пишет iCindy:

The Absolute Minimum Every Software Developer Must Know About Unicode
Давненько я не предавалась благородному переводческому ремеслу, надо бы освежить навыки. Наткнулась тут на днях на отличную статью про Unicode и решила перевести. На самом деле перевод этой статьи уже был выложен на Хабре, но он мне совсем не понравился.
Статья древняя, аж 2003-го года, но некоторые вещи никогда не стареют.
Не знаю, кому она может здесь пригодиться, но пусть лежит. Как говорит моя бабушка, "не пропадать же добру."

оригинал на сайте joelonsoftware.com

Текст оригинала


Абсолютный минимум того, что каждый разработчик ПО абсолютно, несомненно должен знать о Unicode и кодировках (никаких оправданий!)

Вы когда-нибудь задумывались о том, что означает таинственный тэг Content-Type? Вы думаете, это то, что нужно, особо не задумываясь, засунуть в HTML код?

Вы когда-нибудь получали электронное письмо от друга из Болгарии со строкой "???? ?????? ??? ????"?

Я был в смятении, узнав, как много разработчиков не в курсе того, что творится в загадочном мире кодировок, символов, Юникода и прочего. Пару лет назад бета-тестировщик FogBUGZ поинтересовался, сможет ли программа работать с емэйлами на японском языке. А то он без понятия. Проверив как следует, мы выяснили, что в программе творилось черти что. Я связался с разработчиком, который с сожалением сообщил, что они не могут ничего с этим поделать. Как и большинство программистов, они надеялись, что как-нибудь да пронесет.

Не пронесло. Когда я узнал, что PHP, популярнейший инструмент веб-разработчиков, поддерживает ровно 256 различных символов, а также не имеет встроенной поддержки Unicode, то решил, что хватит это терпеть!

Хочу сделать небольшое объявление: если вы считаете себя программистом и не знаете основ кодировки символов и Юникода, то я найду вас. Найду и покараю, заставив шесть месяцев кряду чистить лук в субмарине. Честное слово.

И еще кое-что:

Это совсем не сложно!

URL записи

19:23 

Градации программиста

Относительно, понятное дело)).

1. Пишет плохой код, по незнанию
2. Пишет всегда хороший код
3. Знает, когда стоит писать идеальный код, а когда можно отказаться от перфекционизма и написать плохо, но избежать потери качества и багов.

19:34 

C++, C, Как строка превращается в массив чисел и обратно.

19:34 

Основные принципы кодировки текста "на пальцах"

19:34 

Как установить Python в Windows:)

19:33 

Пайтон

19:33 

C, C++ полезные ссылки

Куда обратиться за справкой по библиотеке, синтаксису, за примерами:
http://en.cppreference.com/w/
http://www.cplusplus.com/

Уроки (сайты с текстом) для начинающих:
https://code-live.ru/tag/cpp-manual/
http://cppstudio.com/cat/274/

Уроки для продвинутых: 64 бита
http://www.viva64.com/ru/l/

Блог:
http://alenacpp.blogspot.ru/

Видеоуроки по современному С++ по английски:
http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Core-C-
http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-

Инструменты для разработки:
https://www.visualstudio.com/

Книги: (обратить внимание, если возникнут проблемы с пониманием)
R. Reese «Understanding and using C Pointers» http://shop.oreilly.com/product/0636920028000.do

@темы: Полезные ссылки (urls), C++, C

18:32 

Задание

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

1. Представить что-нибудь из вашего окружающего мира, или того, с чем вы работаете в виде настолько подробно, насколько можете:
а) структуры (struct), объединяющей разные поля, значения, переменные.
б) массива
в) массива структур
Это могут быть книга, машина, студент, чек из магазина, или что-то другое.

2. Поупражняться в составлении и описании действий через проверки (да - нет, if-else), а так же циклы из одних и тех же, а так же однотипных действий (while, for).

3. Попробуйте на основе п. 2. описать всё действие целиком: заваривание чая, подсчёт семейного баланса, работу с лабораторными данными.

@темы: Задания

18:32 

Краткий обзор языков программирования

18:32 

Теория

2. Теория Хранение данных в памяти компьютера

3. Теория Блоксхемы Базовое управление: проверки, циклы

Лекция 5 Теория: основные структуры данных


6. Теория: Понятия структура, класс, наследование, объект

@темы: Основы (базовые знания), Теория

18:31 

1. Вступление

Здравствуйте!


Этот проект родился отчасти от мечты о лучшем мире, где каждый может решить какую-нибудь тривиальную повседневную задачу сам за 10 минут, не скачивая и не изучая сложные программы вроде MS Exсel. Отчасти же по просьбе знакомых и друзей, которым (да и мне в принципе тоже) не нравятся существующие курсы. (Мне они в частности не очень нравятся предполагаемой затянутостью и скучностью, однобокостью и тем, что после них обучающиеся не могут сами писать программ.)

Поэтому цель: рассказать базовые или редко популяризуемые вещи о синтаксисе языка, а потом как-то перейти к обучению как составлять программы и как мыслить. Посмотрим как это удастся и как будет со временем. Если получиться, затронуть вопросы алгоритмов (даже ИИ и думаю на счёт такой интересной задачки как перевозка козы и капусты).
Я сам не настолько крут, чтобы объяснить всё, и потому посягать на лавры и переделывать работу составителей уже существующих курсов не буду. Но часть материала предпочту рассказать по своему.

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

Несколько слов, почему я считаю, что изучать программирование стоит с Си, С++ (написать хотя бы 10 програмок):
— они живые и развивающиеся, что важно.
— благодаря им вы привыкнете к типам данных
— ... одному из популярнейших синтаксисов
— ... поработаете с памятью (указатели, массивы), и станете лучше понимать как она работает
— ... сможете решить задачу практически под любой ОС: Windows, Linux и поделиться запускаемым файлом.

И почему в дальнейшем стоит перейти на C#, Java, Python:
— У них больше возможностей решать повседневные задачи (работа с интернет, файлами, интерфейс пользователя и т.п.)
— У в них немного сложнее сделать себе гадость и меньше тонкостей.

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

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

Teach Coding

главная