Что почитать начинающему программисту на новогодних выходных

Что почитать начинающему программисту на новогодних выходных Длиннопост, Программирование, Книги, IT, Python, Linux, Алгоритм, Интересное
3
Автор поста оценил этот комментарий

ТС залей плиз все книги на облако и кинь ссыль, а то я только по первой книге уже обрысачил 2 страницы гугла и везде только платно или читать онлайн

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Спасибо, добрые советы. Поищемс в сети. Они есть в Эл.версии, надеюсь?
раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Да, все книги, которые описываю прочитаны и лежат в персональной электронной библиотеке)

показать ответы
3
Автор поста оценил этот комментарий

А есть похожий список для сетевиков?

раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Мм, пока нет, но можно сделать.
показать ответы
Автор поста оценил этот комментарий

Буду благодарен)

раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Тогда ждите, обязательно запилю)
показать ответы
DELETED
Автор поста оценил этот комментарий

О, как раз по ней сейчас иду.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Я бы всё же посоветовал изучать джанго или рельсы для веба.
показать ответы
1
Автор поста оценил этот комментарий

Мне вот интересно. В программировании я ноль. То есть на данном этапе для меня что программист, что веб-программист это одно и тоже ( ну и многие другие ). Я не знаю абсолютно ничего.



Я бы хотел уйти с головой в разработку игр, в частности мморпг ( онлайн ). В принципе, на обучение я могу потратить около 5-7 лет, но не могу пойти учиться, т.к. бизнес забросить я не могу, он все таки кормит, да и глупо это. Но уж сильно тянет меня на создание игр. Да и к тому же скорей всего мморпг будет первым жанром который перейдет в ВРмморпг.



Не посоветуете с чего стоит начинать ? Языки, литература, программы? Если не сложно, буду благодарен за развернутый ответ.

раскрыть ветку (1)
8
Автор поста оценил этот комментарий

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

показать ответы
5
Автор поста оценил этот комментарий

Операционные системы, Silberschatz/Рихтер/Соломон-Руссинович/Робачевский/Вахалия/Стивенс/Love/Linux Kernel Internals, менеджер памяти, менеджер кучи и ее устройство (LAL/LFH/slab), менеджер устройств, менеджер процессов, context switch, реальный и защищенный режим, исполнимые файлы (PE/ELF/Mach), объекты ядра, отладочные механизмы (strace/ptrace/dtrace/pydbg, Debug API) и минидампы, bash, сетевой стек и высокопроизводительные сервера, netgraph, CR0, IPC, оконная подсистема, система безопасности: ACE/ACL и права доступа, технологии виртуализации, RTOS (QNX), программирование драйверов, IRQL, IRP, файловые системы, BigTable, NDIS/miniport/FS drivers/filter driver, Mm-, Io-, Ldr-функции, DKOM и руткиты, GDT/IDT/SDT, ядра Windows/Linux/BSD, POSIX


Компонентно-ориентированные модели, Роджерсон/Таварес, COM/OLE/ActiveX/COM+/DCOM RPC, ATL, апартменты, моникеры, MIDL, XPCOM, CORBA, TAO, D-Bus


Сеть, Стивенс, OSI model/Internet model, Ethernet, TCP/IP, TCP window, алгоритм Нейгла, сокеты, Protocol buffers/Thrift/Avro/ASN.1, AMQP, ICMP, роутинг/BGP/OSPF, ARP, атака Митника, syn flood, HTTP/FTP, P2P/DHT, DHCP, SMB/NBNS, IRC/XMPP, POP3/SMTP/ESMTP/IMAP, DNS, WiFi/WiMax/GSM/CDMA/EDGE/Bluetooth/GPS, ACE, Wireshark


Графика и GPGPU, алгоритм Брезенхема, цветовые модели, трассировка лучей vs полигональная графика, OpenGL/GLSL/Open Inventor, DirectX/DirectShow/DirectAudio/HLSL, stencil/depth/alpha-test, графический конвейер в DirectX 11, шейдеры, модели освещения (Фонг), пропускная способность, fillrate, OpenCL/CUDA/AMP, ландшафты, лоды, тени, deferred shading, текстурирование и фильтрация, антиалиасинг, HDR, tone mapping, virtual/augmented reality


Форматы, XML/XSLT/XPath/XMLStarlet/DOM/SAX, RTF/ODF, JSON/BSON/bencode, YAML, JPEG/PNG/WebP, AVI/MPEG/RIFF/WAV/MP3/OGG/WebM, SVG, Unicode, кодировки однобайтные/UTF-8/UTF-16/UCS-2/UTF-32, проблемы длины и сравнения Unicode-строк


Базы данных, Грубер/Дейт, ANSI SQL, T-SQL, ODBC, MySQL/PostgreSQL/MS SQL/BDB/SQLite/Sphinx, хранимые процедуры, триггеры, алгебра Кодда/А, Tutorial D, нормальные формы, оптимизация и выполнение запросов, структуры данных индексов, транзакции и ACID, CAP-теорема Брюера, NoSQL, key-value storage, шардинг, ORM (C++ ODB), ERD, OLAP, семантическая сеть, triplestore, RDF/Turtle, SPARQL, OWL, Semanticscience Integrated Ontology, reasoner, DBpedia


Прикладное программирование, C#/F#, Шилдт/Троелсен/Рихтер, генерики, yield, linq/plinq, рефлексия, AST, WCF, WinForms/WPF/Silverlight, AOP, фреймворки логгирования, .NET assembly, Scala, Хорстманн/Одерски, pattern matching, макросы/квазицитаты


Квантовые вычисления, алгоритм Шора, квантовая криптография


Функциональное программирование, Haskell/Ocaml/Scheme/Alice или Oz, SICP/TaPL/YAHT/Purely Functional Data Structures/Харрисон-Филд, HOF (map/fold/filter), система типов Хиндли-Милнера, монады, тайпклассы, АТД, dependent types, ленивость/энергичность, логическое программирование (Prolog или Mercury), конкурентное программирование (Erlang или Oz)


Веб-программирование и скриптовые языки, Фланаган/Zend PHP5 Certification Course + Study Guide, Apache/nginx, CGI/FastCGI, PHP/Zend Framework/ReactPHP/Zend Engine/Doctrine или Propel/CodeIgniter или Symphony или Yii, Python/Django/Twisted, Ruby/RoR, ASP.NET MVC, JavaScript/jQuery/React/Google Closure/ExtJS/node.js, ООП в JavaScript, HTML5, CSS3/табличная и блочная верстка, RSS, canvas/WebGL, Ajax/WebSockets, вопросы безопасности (XSS, SQL injection, CSRF), highload, C10k problem, SWIG


Проектирование GUI и представление информации, Раскин/Тафти, юзабилити, основы дизайна и типографики, закон Фиттса, основы верстки, LaTeX


http://sharpc.livejournal.com/67583.html

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Сейчас половина читающих испугалась +)
2
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Я не думаю, что новичок с наскока поймт Java или C++. Поэтому Python'а достаточно. Он реализует ООП в той степени, которая нужна новичку. А затем уже поднабравшийся опыта программист сможет определиться с направлением детельности)
показать ответы
3
Автор поста оценил этот комментарий

ииииии....?

раскрыть ветку (1)
7
Автор поста оценил этот комментарий
Эмм. Все описанные книги есть на просторах интернета. Думаю люди смогут найти. Я храню локально.
показать ответы
Автор поста оценил этот комментарий
Тогда уж воспользуюсь случаем и спрошу у человека с опытом про литературу по Ruby on Rails, что посоветуете?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Д. Флэнаган, Ю. Мацумото "Язык программирования Ruby", Сэм Руби, Дейв Томас, Дэвид Хэннсон "Rails 4. Гибкая разработка веб-приложений. http://rubydev.ru/ и https://www.codecademy.com/learn/ruby и это http://codenamecrud.ru/ruby-programming

показать ответы
1
Автор поста оценил этот комментарий

тут ещё в мусорках тонны длиннопостов в стиле " си плюс плюс за 5 дней"

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Ну тут нет такого описания. Это просто советы что очитать на новогодних каникулах начинающим программистам.
показать ответы
DELETED
Автор поста оценил этот комментарий
По какому принципу выбирались книги? Действительно ли начинающий программист может освоить их за несколько дней? В какой последовательности стоит читать и есть ли взаимосвязь между предлагаемыми курсами?

Просто пост в текущем виде выглядит как очередные "10 крутых книг, которые должен прочитать каждый".
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Выбирались из личного опыта и знаний. Эти книги прочитаны и выделены, как самые простые и удобные из множества. Например по питону есть лутц, но слишком затянуто, много теории. По ним можно очень бегло освоиться, каждая книга идёт в расчёте до недели потраченного на неё врмени. Последовательность, как в посте. Ну кроме шифропанков соответственно.

2-я книга - быстро освоить питон

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

4-я книга - отвлекаемся от кодинга, понимаем линукс, ибо маст хев

5-я книга - вникаем в ООП и начинаем писать полноценный работающий код со знанием дела и платформы

3
Автор поста оценил этот комментарий
Посоветуйте, что по цэ ришотке почитать в плане обучения/полезности?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

1) Эндрю Троелсен "Язык программирования C# 5.0 и платформа .NET 4.5"

2) Стиллмен Э. "Изучаем C#"

3) Йен Гриффитс "Программирование на C# 5.0" (тут более углублённый курс)

показать ответы
2
Автор поста оценил этот комментарий

https://www.codecademy.com/
рекомендую
Да, на английском, зато процесс обучения очень приятный и наглядный

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Хороший сайт, тоже многим советую.
1
Автор поста оценил этот комментарий

А чем питон плох в этом плане?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Ничем, просто в джанго уже все велосипеды изобретены. А так тот же питон, только заточенный под веб, вернее веб фреймвёрк питона.
показать ответы
1
Автор поста оценил этот комментарий

По Django есть что-нибудь толковое для новчиков

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Да, Django Book для начала за глаза хватит. Вот тут http://djbook.ru/rel1.8/ всё.
4
Автор поста оценил этот комментарий
По PHP бы толковое присоветовал...
раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Я буду делать серию постов о литературе по разным ЯП. Про РНР тоже будет. А пока прочитайте: "PHP и MySQL. Исчерпывающее руководство" (Маклафин Б.). Хорошая книга.
показать ответы
Автор поста оценил этот комментарий

и давно вы программист? и какой?

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
11 лет, веб. андроид, айос, десктоп.
показать ответы
4
Автор поста оценил этот комментарий

Шифропанки это скорее поп литература. Если уж для программистов, то "Network Security with OpenSSL" (к сожалению не знаю как русский вариант называется). Там суть как раз для разработчика и описана довольно просто.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Ну тут я добавил эту книгу для общего ознакомления. Просто мне кажется она достойна прочтения +)
показать ответы
5
DELETED
Автор поста оценил этот комментарий

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


Просто как я считаю, если кому-то это будет действительно интересна эта сфера, он найдёт нужную литературу за две минуты в интернете. А эти постоянные посты лишь подталкивают всех подряд, заниматься тем, что у них скорее всего не получится и будет зря потрачено время. Почему никто не размещает информацию для других профессий? Даже в той же IT-сфере, коих с головой и больше

раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Я пишу о том, что знаю и в чём разбираюсь. Если например проджект менеджер будет писать о том, что нужно знать выбравшим эту профессию, то пускай. А у вас выходит запрет на сферу, нельзя так, люди хотят, люди учатся, знаю что читать, учиться проще. Не более. На спецов всегда будет спрос. Хорошие фирмы олухов не берут. Это ИМХО.
показать ответы
1
Автор поста оценил этот комментарий

Ви языки, диалекты дафайте ) Ато десктоп - то еще определение )

раскрыть ветку (1)
5
Автор поста оценил этот комментарий
Python/Django, Java, Ruby on Rails, Go, Swift.
36
Автор поста оценил этот комментарий

Совет на самом деле какой-то дилетантский :\

Начинающему программисту сначала нужно ответить себе на вопрос, "я действительно хочу быть программистом?", потому что как правило программист - это фанатик своего дела.
Затем нужно понять какая область разработки тебе интересна: бизнес, игрострой, веб и пр. и на основе этого уже выбрать ЯП, а затем изучив синтаксис языка в прямом смысле начать ебошить, что-то писать, поставить себе цель и обязательно закончить этот проект.

Обязательным пунктом так же является знание баз данных и sql.
И главное программист должен знать инглиш, это просто ультимативно, если хотите стать толковым прогером и уметь читать между строк, если будите читать все книги полностью, вам жизни не хватит, конкретная тема, конкретный раздел - ага, для моей задачи - беру.
Блин вот пришлось зарегистрироваться даже, накипело от советов для программистов уже :)

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий

Не могли бы Вы посоветовать ресурсы для изучения python'a.

Пробовал читать Лутца, но не то - ооооооочень много воды льет и повторяет он одно и то же.
Заранее спасибо!

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Программируем на Python (Майкл Доусон), https://www.codecademy.com/learn/python (правда на английском, но сервис прекрасный). И лекции 1-я часть https://vk.com/wall-54530371_51874 и 2-я часть https://vk.com/wall-54530371_52000
показать ответы
Автор поста оценил этот комментарий

На самом деле с пониманием книг/речи особых проблем нет. А вот с кем говорить-то?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
ну тут поможет только наличие друзей за бугром)
14
Автор поста оценил этот комментарий
Я не удержусь и скопирую это сюда.

---------------------------------------------------


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


Построенные на теории массового обслуживания и стандарте GSM сети мобильной связи; PHP-скрипты, исполняющиеся на удаленных серверах и передающие свою выдачу через Ethernet по TCP/IP на компьютеры с NDIS-драйверами; процессоры, переупорядочивающие и спекулятивно исполняющие наборы инструкций для того, чтобы скомпенсировать вызванную ограничениями полупроводниковой электроники и скоростью света остановку роста тактовой частоты; рассчитанные на ЭВМ корпуса самолетов и автомобилей, лекарства и структуры ДНК; компьютерные игры, ради крохотного блика в которых пишутся мегабайты заполненных интегралами Френеля статей; электронные фильмы и книги; алгоритмы NLP и TreeNet, вызывающие нам из огромных баз данных поисковую выдачу — вот то, что окружает нас каждый день благодаря программистам, благодаря оригинальным подходам и фундаментальным знаниям, благодаря продуманной и отточенной десятилетиями методологии разработки и управления сложностью ПО.


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


C++, стандарт, Comeau, 1TBS, Страустрап/D&E/Джосаттис/Вандервуд, Дьюхэрст/Мейерс/Саттер, RAII/copy-and-swap/exception-safety, правило пяти, Александреску/Абрахамс-Гуртовой, type erasure, CRTP, NVI, SFINAE, Koenig lookup, Duff's device, Boost, Сик-Ламсдейн/Карлссон, TR on C++ performance, тест Степанова, forwarding problem/move semantics, SPECS


Компиляторы, особенности реализации стандарта, ограничения реализации, интринсики, отличия стандартных библиотек (контейнеры, rand), ABI, реализация виртуальных функций, виртуального наследования, исключений, RTTI, switch, указателей на функции и методы; оптимизации, copy elision (RVO, NRVO), sizeof на различных платформах, дефайны компилятора и среды, __declspec, ключи компилятора, empty-base optimization, статическая и динамическая линковка, манглинг, распределенная компиляция, precompiled header, single compilation unit, (strict) aliasing/restrict, inline/_forceinline, volatile


Мультитредность, обедающие философы, deadlock/livelock/race condition/starvation, атомарность, lock инструкции процессора, memory model/barrier/ordering, CAS или LL/SC, wait/lock/obstruction-free, ABA problem, написание lock-free контейнеров, spin-lock, TLS/per-thread data, закон Амдала, OpenMP, MPI, map-reduce, critical section/mutex/semaphore/condition variable, WaitForSingleObject/WaitForMultipleObjects, green thread/coroutine, pthreads, future/deferred/promise, модель акторов


Язык ассемблера, Зубков/Хайд/Дреппер/Касперски/Фог/Абраш, x86, FPU/MMX/SSEn/AVX, AT&T и Intel-синтаксис, masm32, макросы, стек, куча/менеджеры кучи, соглашения вызова, hex-коды, машинное представление данных, IEEE754, little/big endian, SIMD, аппаратные исключения, прерывания, виртуальная память, реверсинг, срыв стека и кучи, return oriented programming, alphanumeric shellcode, L1/L2/RAM/page fault и их тайминг, язык ассемблера ARM


Аппаратное обеспечение, Хоровиц-Хилл/Титце-Шенк/От физики к Си от panchul, полупроводниковая электроника/спинтроника/фотоника, транзистор, триггер, схемотехника, микрокод, технология создания процессоров, logic synthesis, static timing analysis, FPGA, Verilog/VHDL/SystemC, SISAL, Arduino, устройства памяти (ROM → EEPROM, RAM, SSD, HDD, DVD), RISC/CISC, Flynn's taxonomy ([SM]I[SM]D), принстонский и гарвардский подход, архитектуры процессоров, архитектуры x86, VID/PID


Процессоры, конвейеризация, hyper-threading, out-of-order execution, спекулятивное исполнение, static/dynamic branch prediction, префетчинг, множественный ассоциативный кэш, кэш-линия/кэш-промах, такты, кольца защиты, память в мультипроцессорных системах (SMP/NUMA), тайминг памяти


Дискретная математика, K2, теорема Поста, схемы, конечные автоматы (ДКА и НДКА), автомат Калашникова, клеточные автоматы


Вычислимость, машина Тьюринга, нормальные алгоритмы Маркова, машина Поста, диофантовы уравнения Матиясевича, лямбда-функции Черча, частично рекурсивные функции Клини, комбинаторное программирование Шейнфинкеля, Brainfuck, эквивалентность тьюринговых трясин, проблема останова и самоприменимости, счетность множества вычислимых функций, RAM-машина, алгоритм Тарского, SAT/SMT-солверы, теория формальных систем


Языки программирования, грамматики, иерархия Хомского, теорема Майхилла-Нероуда, лемма о накачке и лемма Огдена, алгебра Клини, НДКА → ДКА, алгоритмически неразрешимые задачи в формальных языках, Драгонбук, Фридл, регекспы и их сложность, PCRE, БНФ, Boost.Spirit + Karma + Qi/Ragel, LL, LR/SLR/LALR/GLR, PEG/packrat, yacc/bison/flex/antlr, статический анализ кода, компиляция/декомпиляция/обфускация/деобфускация, Clang/LLVM/XMLVM/Emscripten, GCCXML, OpenC++, построение виртуальных машин, JiT/AoT/GC, DSL/DSEL


Алгоритмы и комбинаторная оптимизация, Кормен/Скиена/Седжвик/Кнут/Ахо-Хопкрофт-Ульман/Пападимитриу/Шрайвер-Голдберг/Препарата-Шеймос/e-maxx.ru, структуры данных, алгоритмы, сложность, символика Ландау, теорема Акра-Баззи, time-space tradeoff, классы сложности, NP-полные задачи, КМП, графы и деревья, потоки в сетях, матрица Кирхгофа, деревья поиска (особенно RB-дерево и B-дерево), occlusion detection, куча, хэш-таблицы и идеальный хэш, сети Петри, алгоритм русского крестьянина, метод Карацубы и матричное умножение Винограда-Штрассена, сортировки, жадные алгоритмы и матроиды, динамическое программирование, линейное программирование, diff-алгоритмы, рандомизированные алгоритмы и алгоритмы нечеткого поиска, псевдослучайные числа, нечеткая логика


Численные методы, дихотомия/метод Ньютона, интер- и экстраполяция, сплайны, метод Гаусса/Якоби/Зейделя, QR и LU-декомпозиция, SVD, МНК, методы Рунге-Кутты, метод Адамса, формулы Ньютона-Котеса, метод Ритца, метод Бубнова-Галеркина, метод конечных разностей/элементов, FFT/STFT, сходимость и устойчивость


Машинное обучение, Рассел-Норвиг/Bishop, подходы к моделированию AI, переобучение/кроссвалидация, байесовские сети, нейросети, сети Кохонена, Restricted Boltzmann machine, градиентный спуск/hill climbing, стохастическая оптимизация (метод Монте-Карло, метод отжига, генетические алгоритмы, муравьиные алгоритмы), SVM, gradient boosting, кластерный анализ, метод главных компонент, LSH, обучение с подкреплением, MDP, information retrieval/data mining/natural language processing, машинное зрение, Szeliski, OpenCV, image processing, OCR, фильтры Собеля, каскад Хаара, Viola-Jones framework, SURF, введение в психофизиологию зрения, IPython/pandas/scikit-learn


Теория информации, сжатие, Хаффман, RLE, BWT, LZ, коды коррекции ошибок, сжатие с потерями (изображения, аудио, видео), информационная энтропия, формула Шеннона, сложность Колмогорова


Криптография, Шнайер/Ященко, Принцип Керкгоффса, симметричная (DES, AES), асимметричная (RSA), качество ГПСЧ, алгоритм Диффи-Хеллмана, эллиптические кривые, хэширование (MD5, SHA, CRCn), DHT, криптостойкость, криптоатаки (атака гроссмейстера), WEP/WPA/WPA2 и атаки на них, цифровая подпись и сертификаты, PKI, HTTPS/SSL, доказательство с нулевым разглашением, пороговая схема


Математика, Кнут-Грэхем-Паташник/Зорич/Винберг, Spivak/Dummit-Foote, матан, линал, комплан, функан, диффгем, теория чисел, дифуры/интуры/урчпы/вариационное исчисление/оптимальное управление, производящие функции, ряды, комбинаторика, теорвер/матстат/слупы/теория массового обслуживания, цепи Маркова, интегральные преобразования (Фурье, Лаплас, вейвлет), NZQRCHOS, матпакеты (Mathematica, Maple)


Физика, правила Кирхгофа, закон Джоуля-Ленца, комплексное сопротивление, скорость и частота света, уравнения Максвелла, лагранжиан и гамильтониан


Химия, стехиометрия, химия кремния :)


Архитектура и стиль кода, Макконнелл/Фаулер/Лебланк/Гамма/Александреску-Саттер/Буч, защитное программирование, паттерны, SOLID/GRASP/KISS DRY SPOT/YAGNI, UML, OOP (Smalltalk), OOD/OOA, метрики кода


Методологии разработки, Waterfall/RUP/Agile/Scrum/Kanban/XP, TDD/BDD, CASE


Тестирование, юнит-тесты, функциональное, нагрузочное, интеграционное тестирование, тестирование UI


Инструментальные средства разработки, IDE, IntelliSense, отладчики (VS/Olly/WinDbg/kdb/gdb) и трейсеры (strace/ltrace), DWARF debug information format, дизассемблеры и декомпиляторы (IDA/HexRays/Reflector), системы контроля версий (SVN, GIT), merge/branch/trunk, системы именования файлов и бранчей, continuous integration, ant, code coverage, статический анализ (lint, cppcheck), динамический анализ (valgrind, фаззинг), верификация и валидация ПО (Frama-C, RAISE (RSL), Coq), профайлинг, багтрекеры, документирование кода, системы сборки (CMake), пакетные менеджеры (NuGet)


Фреймворки, Qt, moc и метаинформация, концепция слот-сигнал, Саммерфилд-Бланшет/Шлее, PoCo, промышленные библиотеки: GMP, i18n, lapack, fftw, pcre


...
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Я об этом и говорил, что такой информации море, было бы желание найти.
Автор поста оценил этот комментарий
Я, как новичок, в 12-13 лет понял JavaScript, который большинству сложнее, чем Java / C++ ).

Притом, что я ни разу не вундеркинд.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну JS своеобразен)) Это как клуб по интересам, но с JS маньяки)

Автор поста оценил этот комментарий
@vishcode а сам ты как давно программируешь? В каком направлении, расскажи осебе, и почему именно python? Кстати его я тоже начал вот изучать, начал с Лутца.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
11 лет. Я давно начинал с Basic. Мне просто всегда было интересно что там и как в этих компьютерах. Это вот 3-4-й класс был. Потом ушёл с головой в линух через пару лет и в 7-м классе я начал питон юзать. С этого момента ему не изменяю. Java порядка 4 лет, рельсы тоже 4. Параллельно занимался дизайном, аналитикой, ну и очень люблю английский язык и читать, что очень облегчило жизнь) Так же любил и люблю аботатьв область ИБ и ИИ.
Автор поста оценил этот комментарий

Автор советует странные книжки, так что относитесь к его постам аккуратно.

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

1. В СПб есть такой https://compscicenter.ru/ у них несколько направлений, к сожалению они не расписаны полностью, но думаю легко им написать и попросить план занятий. Дальше учитесь по их лекциям. Не очень удобно.

2. От того же compscicenter на stepic.org есть вводные курсы, ликбез по математике, введение в архитектуру, несколько языков и т.п.

3. Coursera, англ. яз., там есть и отдельные курсы и "специализации" - серии курсов. Начните например с такой https://www.coursera.org/specializations/fundamentalscomputi... . Они бесплатные, платно это получение сертификата.


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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Товарищи! Я не создавал учебную программу для придерживания ею. Тут нет комплекса рекомендаций для обучения. Это рекомендованные к прочтению и пониманию книги.

показать ответы
Автор поста оценил этот комментарий
Пожалуй тут спрошу. А как именно вы учили английский?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
По книгам, курсам, в рамках обще школьной программы. Потом просто книги читал на английском, затем смотрел кино и по возможности разговаривал. + так как я пользую Arch Linux, то и маны и инфу тоже читать на англ, так со временем стал читать техническую литературу на английском так же свободно, как и на русском.
показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
В доусоне нет. Там по ходу дела объясняется.
показать ответы
Автор поста оценил этот комментарий

Спасибо. Могу я поинтересоваться, на чем вы пишете (ЯП) и в какой области? 

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Python/Django, Java, Ruby on Rails, Go, Swift. Веб, android, ios, десктоп.

показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Си для новичков, не думаю)
показать ответы
Автор поста оценил этот комментарий

Как вы и написали сначала python, а потом хочу на Си

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Люди обычно с Си на питон переходят) Но вообще все основы сможете понять на питоне, а дальше добро пожаловать в мир программирования)

1
Автор поста оценил этот комментарий
Я например учусь в универе. Единственное что изучал пока что - это С. Как раз хотелось бы почитать книги, чтобы понять чего именно хочу.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Тогда начните с представленных в списке книг)
2
Автор поста оценил этот комментарий

спасибо за подборку, будет интересно почитать )

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
+)
1
Автор поста оценил этот комментарий
Благодарю очень! Уже пошёл скачивать!)
Пиши, пожалуйста, ещё! Это полезно и интересно! ;-)
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Спасибо, это приятно) Продолжение скоро обязательно будет)
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий

это самая большая моя проблема. Я не могу понять как это работает, но с пониманием ООП оно как то проясняется. То есть я не могу понять как набор функций сможет, к примеру, отформатировать изображения.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Сразу не пытайтесь понять. Не получится. Понимание работы со временем приходит.

показать ответы
Автор поста оценил этот комментарий

НУ в целом я пока не особо понял чего хочу, но точно не веб - считаю что веб это копипаста на 80%. Наверное все же охота программировать микроконтроллеры и робототехника. Возможно игры

раскрыть ветку (1)
Автор поста оценил этот комментарий

Тогда С/С++ - это точно.

показать ответы
Автор поста оценил этот комментарий

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

Тут возникает резонный вопрос по поводу того, а что дальше ? Я в любом случае не пойму С++ на столько хорошо, чтобы писать на нем с одной то книги по базовым понятиям автора которого я назвал выше. Думаю следующий толмут взять - Дейтелов. А затем, когда начну уже с горем пополам писать, выучить шарп и дот нет или же Java. Каково Ваше мнение на расписанную мною тактику ?:)

раскрыть ветку (1)
Автор поста оценил этот комментарий

К шарпу я отношусь крайне скептически, ибо дальше окон не уедите. Сейчас тут начнутся вливы по поводу веба на шарпе, но как по мне - это бред. Вы для себя со сферой определитесь. Поймите, нет одного для всего. Python имеет максимальную полигаемость сфер, тут вам и веб, и андроид, и системный кодинг, наука и много чего ещё. Просто грубо говоря если вы хотите гейм дев, то не нужно начинать с Perl, а  сразу смотреть на  C++, но при этом если смотрите на веб, не начинайте с чистого Си.

Поэтому вопрос, какую сферу хотетите постигать? Базис то у всего один, от алгоритмов, дискретной и высшей математики никуда не уйти, принципы ООП одинаковы, просто синтаксис языков разный. ООП, он и на Python, и на Java ООП. Я образно описал.

показать ответы
Автор поста оценил этот комментарий

Спасибо за пост, сохраню. 

Но вот можно еще и вопрос я задам. 

Вот сколько я не читал форумов и прочьего, советов по тому с чего же начать учить - масса. 

Одни кричат что нужно освоить для начала паскаль, мол он научит программировать, а дальше уже и поймешь куда идти, другие кричат что лучший выбор для старта - это С++, мол все языки основаны на его синтаксисе и после плюсов будет не сложно уйти куда хочешь. Вы же пишите(и не только Вы) что лучший выбор со старта - это Питон. Начинал я учить с экмы, потом пыха, теперь вот последовал советам и учу плюсы, так что, теперь бросить все и переключиться на питон ? Или же все же понять плюсы ? Я запутался :( 

раскрыть ветку (1)
Автор поста оценил этот комментарий

На это вопрос происходят постоянные дебаты. Некоторые советуют С++, как язык для старта, но на мой взгляд это сложный язык для понимания основ. Python очень хороший язык, но при этом у него довольно абстрактно присутствует ООП. Дело в том, что Python не требует жёстко придерживаться принципов ООП, а подразумевает его использование там, где это необходимо и не использовать там, где толку от этого мао. Меня тут сейчас заминусуют, но я предложил бы Вам начать с Python для понимания приципов программирования, как формируется код, написать простенькие программы и въехать в основы, а затем переключиться на Java. В отличие от С++, Java более простой язык, тут меньше шансов "прострелить себе ногу" и для неопытного программиста это будет отличным вариантом. Да и Python и Java всегда прокормят. + Python в фреймворке Django. то есть намного проще будет дать старт в вебе, если рассматриваете это направление. То есть не придётся изучать другой язык, что бы начать писать в вебе, а заострить внимание на других технологиях, таких как JS например. Java позволит войти в мобильную разработку (Android). Кстати Python также позволяет писать приложени для Android.

показать ответы
Автор поста оценил этот комментарий

слышал что совместно с изучением ООП необходимо так же изучать дискретку, так ли это? Если да, то не могли бы подсказать пару годных книг?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Дискретную математику в приципе изучать нужно. Я бы посоветовал книгу "Дискретая математика для программистов" (Р, Хаггарти) и "Дискретная математика: Учебик для вузов. 2-е издаие" (Ф.А. Новиков) +)

Автор поста оценил этот комментарий
т.е. помимо чисто потребительских отличий - разницы нет. Мак может не ныть про обновления, винда будет ныть, а на линуксе можно хоть ядро перекомпилить и другие "фичи", но разницы между написанием скрипта на питоне в саблайме в линуксе и в нотепаде++ в винде - нет. Я правильно понял?
раскрыть ветку (1)
Автор поста оценил этот комментарий

В написание кода разницы нет, синтаксис от ОС не изменяется.

Автор поста оценил этот комментарий

Еще один вопрос. Я их буду задавать по мере поступления, если Вы не против.

Какую версию пайтона лучше ставить - 2.7 или более позднюю?

раскрыть ветку (1)
Автор поста оценил этот комментарий

3.5

Автор поста оценил этот комментарий

Видимо, я недостаточно подробно выразился. Какие преимущества мне, как программисту, даст Linux, в отличие от мака\винды?

Ну к примеру, сижу я пишу скрипт на том же python. Как на процесс написания кода влияет ОС, и чем влияние(если оно есть) Linux'a лучше, чем влияние мака\винды?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Винда мне неудобна кармически. ИМХО, тот же веб сервер, хотя это тема для холивара. Мак стабилен, не вызывает гемороя, не ноет после обновлений, не требует постонно чего-то в отличие от винды, а в отличие от линукса, не просит допила, включил, поработал, выключил. Да. линух можно доделать до такого состояния, у меня так арч работет, но мак доделывать не надо.
показать ответы
Автор поста оценил этот комментарий

Галактику?

раскрыть ветку (1)
Автор поста оценил этот комментарий
На сколько я понял речь идёт об этом http://www.galaktika.ru/erp/instrumentarij.html
Автор поста оценил этот комментарий
Вот примерно в таком ключе все и отвечают. Лучше, и всё тут. Чем лучше, почему - догадывайся сам.
раскрыть ветку (1)
Автор поста оценил этот комментарий
Так обзоры же есть, там всё подробно, просто надоело копипастить одно и тоже повсюду, уж простите. Я испольую арч, вот вам ссыль http://vschart.com/compare/arch-linux/vs/mac-os-x
показать ответы
Автор поста оценил этот комментарий
раскрыть ветку (1)
Автор поста оценил этот комментарий
не я цены ставлю
2
Автор поста оценил этот комментарий

набор для редко устраивающихся программистов

питон и линукс? не очень сейчас на них вакансий много

раскрыть ветку (1)
Автор поста оценил этот комментарий
Вроде достаточно. Ну а линь аезде почти требутся, кроме дотнет и шарпа.
показать ответы
Автор поста оценил этот комментарий

пиздец что я вам могу сказать, "ДЖАНГО ЭТО ТОТЖЕ ПИТОН" это просто 100 балов 11 лет опыта у чувакa... ".NET это тот же С#, RAils - это тот же руби, PHOENIX- это тот же элексир, React.js - это тот же джабаскрипт "блядь чувак ты made my day!

раскрыть ветку (1)
Автор поста оценил этот комментарий
Там вдь в конце написано всё. А так тот же питон, только заточенный под веб - неудачный кавер те же яйца, только в профиль. Грубо говоря ридераетесь к словам, когда сказать нечего, в такой ситуации лучше промолчать.
Автор поста оценил этот комментарий

ПХП - это язык, на пхп есть куча фреймверков таких как Symphony(MVC) например или Yii. Python - это язык у него тоже есть фреймерк под названием Django (может есть еще другие я не из питономира поэтому не знаю) Но блядь ! фреймверк - написанный на этом же языке, ну как так можно ребята ну ебана... 

раскрыть ветку (1)
Автор поста оценил этот комментарий
Мы все в курсе, спасибо, дорогой КЭП, но лучше пхп от этого не стал.
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Вот http://habrahabr.ru/post/148015/ например. Вы спросите у тех, кто отзывается, читали ли они эту книгу. Ну и Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. "Приемы объектно-ориентированного проектирования. Паттерны проектирования" к прочтению, если въехать хотите.
показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

В такой связке эти книги очень хорошо подойдут для самообразования. Чтобы выучить мат часть так сказать можно в библиотеке программиста в лекциях поковыряться. http://vk.com/proglib кто ищет, то всегда найдёт, как говорится.

1
Автор поста оценил этот комментарий
Тогда и я скромно спрошу: промелькнуло, что вы занимаетесь иос , есть огромное желание заниматься разработкой под иос, андроид. С чего посоветуете начать? Абсолютный новичок.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Ммм, как с ангийским дела? Просто на русском мало материала. А вообще идём сюда http://vk.com/page-54530371_49325511 и постигаем науку ios разработки. И определяемся что пишите, я имею ввиду игрострой или медиа и так далее.

DELETED
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Ну у каждого своё мнение, на мой взгляд такие посты помогают людям, которые только пришли к решению изучать программирование и не знают, какую брать литературу и что учить.
Автор поста оценил этот комментарий

Подпишусь на аргументированный и пространный пост о ненависти к ПХП и о любви к Джанго :). Ну а если серьезно, сам на перепутье - решил перейти в веб-программирование (из прикладного), не знаю что "рентабельнее" учить. Всегда думал, что ПХП это некая основа, в с связке с HTML, CSS и JS. Не поленись, Бро, поделись опытом.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Хорошо, немного позже сделаемс)
2
Автор поста оценил этот комментарий

Уууу... кинули говна на вентилятор. И каждый сейчас будет за свой язык толкать. Я вот например Джава пакет предложил бы, "Thinking in java", ну и "The C Programming Language". Для начала. Алгоритмы неизбежно впитаются в кость если что-то вменяемое на Си попробуете написать. Java уже для свободного плавания.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Так пускай толкают, главное аргументированно.
Автор поста оценил этот комментарий
Yii1-2 тоже тянет orm, вообще мы о яп говорим или о фреймворках на яп? Я тоже люблю питон, просто твои доводы начет php ну совсем не обоснованы . кстати , про костыли, я участвовал в международном проекте на java и там было очень много говнокода и костылей
раскрыть ветку (1)
Автор поста оценил этот комментарий
Значит не продумывали систему стандартов и требований внутри проектов. Yii слишком хитро******, а кодингнитор тупой в той  же мере. Но сейчас разбирая начнём холливар Может запиите пост на эту тему?
показать ответы
Автор поста оценил этот комментарий
@vishcode а как тебе Лутц как автор и его книги изучаем и программируем на Python ?
раскрыть ветку (1)
Автор поста оценил этот комментарий
Очень хороший, всё подробно и понятно, но часто очень подробно. Просто если хочется вникнуть в суть и начать писать, а потом заняться изучением более углублённо, то лучше Доусон, а если есть много времени на изучение и бешенное желание вникнуть как можно "глубже", то Лутц. Я всё же сторонник Лутца. потому что всё разжованно и пробелов в знаниях по питону после него почти не будет.
показать ответы
Автор поста оценил этот комментарий

Можете тогда посоветовать книги по Си я начал читать Гриффитса, но там написано, что это книга для тех кто уже знает основы программирования

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ну по Си книги довольно тяжело читать. Попробуйте Стивена Прата "Язык программирования C. Лекции и упражнения" и Б. Кернигана, Д. Ритчи "Язык программирования Си". Они для новичков.
показать ответы
Автор поста оценил этот комментарий
Понимаю что это ведёт к холивару, но всё-таки напишу: php устаревает - ты серьёзно? Почему тогда недавно выпустили версию 7? Назови хоть один язык где есть orm в стандартной библиотеке? Psr -1,2... Это не стандарты? Прежде чем писать о том чего не знаешь посмотрел бы инфу в интернете
раскрыть ветку (1)
Автор поста оценил этот комментарий
Я знаю о чём пишу. Эмм, MVC шарповый тянет орм в себе, джанго имеет орм. Как бы у питона есть срогий регламент оформления кода. Для меня блаженным открытием был переход на питон для веба. За2 года писания на пыхе много где возненавидел этот язык. Например банально тестирование не проведшь нормально.
показать ответы
Автор поста оценил этот комментарий

Не могли бы вы что-нибудь посоветовать студенту-программисту, который только определился с предпочтениями и очень жаждет развиваться в разработке, но не знает куда смотреть, с чего начать. Мне интересны SQL и C#. Какие технологии востребованы, чему стоит научиться? Что обязательно пригодится и что поможет в улучшении навыков? Буду крайне признательна за подсказку от старших коллег)  

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вот по C# я не лучший советчик, только по книгам сказать могу, так как быстро ушёл с этого ЯП. Так что может кто тут или на просторах сети расскажет.


Книги по шарпу вот:

1) Эндрю Троелсен "Язык программирования C# 5.0 и платформа .NET 4.5"

2) Стиллмен Э. "Изучаем C#"

3) Йен Гриффитс "Программирование на C# 5.0" (тут более углублённый курс)

по SQL:

SQL (Крис Фиайли)

показать ответы
Автор поста оценил этот комментарий

Может и мне что нибудь подскажете? Я только начал и начал с JAVA.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Скоро будут посты по разным ЯП, там всё подробно опишу.

1
Автор поста оценил этот комментарий

А посоветуйте с какой книги лучше начинать? Только начал заниматься

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий
Можешь обосновать свой совет?
раскрыть ветку (1)
Автор поста оценил этот комментарий
Я просто писал на PHP довольно долго, после этого попробовал рельсы. Долгое время пишу на питоне, и поэтому остановился на джанго. Очень много, что делается на пыхе костылями, на данго делается гораздо проще, менее ёмко и проще. + пхп устаревает и очень медленно развивается. Нет ORM, что вообще не очень. И много быдлокода написано, так как нет стандартов написания практически.

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

показать ответы
13
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Перечитайте заголовок пожалуйста. Потом перечитайте комментарий и снова заголовок. Это просто список книг, которые стоит прочитать. Это не топик как стать программистом и что нужно учить. Спасибо за внимание.
показать ответы
1
Автор поста оценил этот комментарий

Если ты читаешь книжку по программированиб на русском то скорее всего она устарела уже лет 5 назад. 

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ну увы не все могут себе позволить читать в eng формате.
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Мак лучше, не спорю, но дорого
показать ответы