• Какую литературу читать для изучения архитектуры компьютера и ОС?

    @Evsign
    Просто отлично, что вы к этому пришли.
    Как говорится, с начала освойте азбуку, а потом уже за c++ принимайтесь.

    1. Charles Petzold "C.O.D.E."
    Читать обязательно. Очень хорошо разжёвываются все эти битности, разрядности и .тд.
    В процессе чтения Вы, вместе с автором постепенно собираете компьютер и попутно осваиваете для этого необходимый бекграунд.
    С начала разбираются подходы в кодировании информации, не шифровка, а принципы представления информации в нулях и единицах. Потом разбираются системы счисления, потом немного химии и физики, что бы представлять как течёт ток по проводам. Потом разбираетесь как работают реле, далее идут первые логические элементы на реле. Потом вместе с автором собираете различные компоненты типо памяти, процессора на основе ранее сконструированных логических элементах. В общем это всё продолжается пока вы в конце не построите компьютер и изучите несколько основных ассемблерных команд, попутно изучив как считать в разных системах счисления, краткую историю развития комп техники и все логические элементы.

    2. Andrew Tannenbaum "Structured Computer Organization"
    По идее, можете даже сразу начать с этой книги, но все те фундаментальные вещи, которые разжёвывает Петцольд тут будут упомянуты вскользь, но тут пойдут уже более серьёзные вещи по поводу архитектуры. Будут рассматриваться уровни устройства современных процессоров, памяти, ассемблер, прерывания и т.д. т.д. т.д. Перечислять всё не имеет смысла, т.к. список будет оооочень большой. Это наиболее полная и подробная книга об архитектуре ЭВМ. В принципе, прочитая её от корки до корки вы будите достаточно хорошо разбираться в архитектуре самих компьютеров.

    3. Hennessy J., Patterson D. "Computer Architecture A Quantitative Approach"
    Эту пока ещё не читал, но судя по содержанию может быть отличным дополнением после танненбаума. Хотя, вполне может оказаться довольно самодостаточной книгой на ровне с вышеупомянутой книгой.
    Судя по предисловию и содержанию, в ней в дополнении к тому, что разбирает танненбаум, много уделяется внимание параллелизму, облакам, шарингу ресурсов и т.д.

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

    Если время хватает, то сразу читайте Петцольда, а потом Танненбаума :) И это лучший вариант. ИМХО)
    Петцольд читается очень легко и интересно. Я прочитал его на одном дыхании, а вот с Танненбаумом всё не так просто)

    UPD:
    По поводу актуальности. Актуально всё)
    2 и 3 разбирают современные ARM-Cortex A8 и i7 процессоры, Nvidia Fermi, CUDA и т.д.
    Ну а в первой книге этого и не надо)
    Ответ написан
    3 комментария
  • За кем следить на GitHub?

    JSinga
    @JSinga
    Итак попытаемся разобраться и сделать это логично:
    Мы любим фронтенд значит нам нужно что то на языке JavaScript - ищем на гитхабе проекты с большим кол-вом звездочек и все еще "живые":
    github.com

    Смотрим неколько проектов и смотрим там на контрибьюторов которые внесли много коммитов результат:
    pazguille
    getify
    spicyj
    hhaidar
    nolimits4web

    То же самое для html:
    PaulKinlan
    hubgit
    Ms2ger
    LeaVerou - обратите внимание это девочка и еще и из MIT
    davelab6
    enaqx

    Попутно смотрим в какие группы эти ребята входят и отмечаем инетересные
    reactjs
    html5rocks
    GoogleChrome

    Ну алгоритм вам надеюсь понятен, дальше можно просматривать бесконечно!
    Ответ написан
    1 комментарий
  • Какой софт использовать для верстки / программирования (Front-end)?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Проектирование — Balsamiq Mockups (ну и MS Word, куда же без него:)
    Нарезка — Fireworks (Photoshop для коррекции полученных макетов)
    Иконки — ArtIcons (не идеал, просто купил когда-то) или любой редактор для PNG + любой конвертер
    SVG — Illustrator и Inskape
    Пипетка (просто пипетка, а не комбайн) — EYE3 (вариантов масса)
    Код — Sublime (посматриваю в сторону WebStorm), иногда Notepad++, иногда Excel для подготовки массивов данных
    Локальный сервер — использовал из-за простоты установки Denwer, перехожу на Node.js
    FTP клиент — Filezilla
    Быстрая проверка на iPad, iPhone (iPod) — Electric Mobile Studio
    Ответ написан
    3 комментария
  • Что изучать, на что тратить свободное время, чтобы в будущем стать востребованным программистом с нормальным заработком?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Ответ на вопрос будет сильно зависеть от того, в каком направлении вы думаете развиваться.
    Будет ли это сетевое программирование? Тогда это си, в основном.
    Может быть, веб-программирование? Тогда тут могут быть php, javascript, python, ruby.
    Захотите разрабатывать программы на десктоп? Вам нужны c# или java.
    На мобильные платформы? тогда java и objective c (плюс swift).
    Или податься в разработку игр? Тогда либо c++, либо с# (для Юнити - наверное, самой популярной платформе).
    Хотите экзотики? Приглядитесь к функциональным языкам - Erlang и Haskell.
    Разработка железа и драйверов для железа? тогда си (без плюсов) и ассемблер.
    Определитесь, что вы хотите, потому что всё объять не получится. Выберите один (или два) направления и добейтесь хорошего уровня в нём. А потом вам будет уже легче двигаться дальше.

    Мой совет - попробуйте изучать C# или Java (они во многом похожи) для софта, или Javascript и php/python для веб-приложений и сайтов.

    Добавлю, что очень правильный совет дал @tsarevfs - помимо языка программирования, хороший программист должен знать несколько инструментов - и в первую очередь, это система контроля версий, например, git. Плюс юнит-тестирование (хотя это можно начать изучать позже, через годик-два). Плюс - нужно хорошо знать свою IDE, в которой работаете; не вздумайте работать в блокнотиках!

    Ещё помимо практики нужно знать теорию - читайте Макконнелла, Фаулера, Мартина, Бека.
    Подпишитесь на хабре на пару десятков хабов и регулярно читайте всё подряд. Через годик ваш уровень понимания статей сильно вырастет.

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

    UPD. Важное дополнение из обсуждения в комментариях (спасибо @Argentum88 @Deerenaros )
    Чтобы стать профессионалом и "востребованным программистом с нормальным заработком", нужно очень хорошо понимать внутреннее устройство тех систем (платформ, фреймворков), на которых идёт работа.
    Для этого нужно заглядывать вглубь. Изучив различные мейнстрим-инструменты, посмотреть на аналогичные менее популярные системы. Изучать исходный код используемых open-source библиотек. Написать свою подобную систему. Для web - написать свою CMS (хотя бы базовую). Для десктоп-программ - попробовать программировать без навороченных библиотек, которые делают рутинную работу за программиста. Для разработчика игр - сделать простую игру на базовом инструментарии платформы, где всё придётся делать своими руками.
    Всё это даст возможность проникнуться, почему всё делается именно так, даст понимание взаимосвязей разных частей программы.
    А потом, осознав это, выбрать один из уже готовых инструментов, и продолжать писать на нём, уже обладая более глубоким его пониманием.
    Ответ написан
    21 комментарий
  • Каков план личностного развития PHP программиста с нуля?

    @nikita-b
    Все это сильно зависит от того, что вы знаете сейчас. Английский знаете? Если нет, то это первое, что стоит изучить, хотя бы на уровне чтения.

    0. Допустим если вы не знаете английский.
    lingualeo.com
    Русский сервис, где можно читать тексты и смотреть разные видео на английском. Очень удобен.
    https://www.duolingo.com/
    Похожий сервер, чуть проще. У него очень интересный принцип работы и замысел почитайте.

    1. Допустим вы знаете/изучили английский. Нужны только самые основы вы их разовьете в процессе изучения онлайн-курсов. Что такое онлайн-курсы? Это сервисы, где вам через видео, книги, тесты предлагают знания. Университет онлайн.
    Это очень хороший способ, потому что у них уже есть набор тем, которые вам требуется изучить.
    Есть такой сервис на русском:
    htmlacademy.ru
    Я не пробовал, но в целом рекомендуют. Он не совсем бесплатный, но там 100 рублей в месяц. Это совсем мелочи.
    Есть еще:
    proglive.ru
    Но он если честно слишком дорогой. Я смотрел там несколько вэбинаров и не был особо впечатлен. но может кто-то там учится подскажет. Может в интернете найдете информацию о нем.

    Есть более продвинутые аналоги на английском:
    www.codecademy.com
    Бесплатный набор курсов по очень-очень большому спектру тем. Достаточно высокого качества.

    Еще
    https://teamtreehouse.com
    https://teamtreehouse.com (Без моей реф. ссылки)
    Этим я сейчас пользуюсь сам. Курсы более подробные и приятные. Хотя если, что-то знаете то могут показаться зануднее. Есть еженедельное шоу, где рассказывают о всяких новых технологиях и течениях. Часто появляются новые курсы. Можно задать вопросы на форуме. Он правда платный. Около 1000 рублей в месяц, но он того стоит.
    https://www.udacity.com/
    Еще один бесплатный аналог. Не пробовал.

    2. Допустим вы прошли курсы по html,css, js, jquery, php. Я рекомендую уже с этого момента выполнять платные работы.
    Есть много разных мест, где можно найти работу:
    Русский: fl.ru
    Английские: www.freelancer.com
    https://www.odesk.com
    В англоязычном секторе зарплаты намного приятнее. Для жителей регионов в особенности.
    Вы можете брать дешевые проекты и предлагать низкую цену. Практика очень важна.

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

    3. Несмотря на то, что этот пункт идет третий он должен идти параллейно со вторым. А возможно и первым. Но в целом это все не обязательно, просто так вы повышаете свой уровень.
    3.1 https://www.edx.org/course/mitx/mitx-6-00-1x-intro...
    Это очень хороший курс от крутейшего в мире универа по теме IT. Сначала кажется, что легкий, а потом внезапно начинается ад. Пройдя его вы наверно будете знать больше, чем большая часть людей, которые заканчивают российские вузы)
    Там правда Python, но знать его не надо, все объяснят.
    Зато очень рекомендуется математика.
    Для начинающих несмотря на название достаточно сложен.
    3.2 https://www.class-central.com
    Список курсов, которые проводят крупнешие университеты мира.
    Вам нужно многое из того, что касается программирования, алгоритмов, математики.
    Ищите, что вам интересно и вперед.
    Я советую:
    3.3 https://www.coursera.org/course/algs4partI
    И вторую часть.
    Там правда используется Java, но нужны только основы.
    3.4 https://www.edx.org/course/linuxfoundationx/linuxf...
    Курс по основам Linux. Не пробовал.
    3.5 Математика. От простого к сложному:
    https://www.coursera.org/course/algebra
    https://www.coursera.org/course/precalculus
    https://www.coursera.org/course/calcsing
    https://www.coursera.org/course/calc1
    https://www.coursera.org/course/sequence
    Не все курсы проходят, так что надо искать аналоги. Там были и более сложные. Так же важны курсы по теории вероятности.

    Что осталось за скобками? Придется изучить систему контроля версий. Я люблю Git. Вот хорошая книга:
    cloud.github.com/downloads/GArik/progit/progit.ru.pdf
    Совет: Не берите больше 3-4 курсов. Не справитесь. Хотя бы уж в начале не берите.

    Если пройдете все это, поздравляю, вы стали программистом причем достаточно высокого уровня.
    То есть подведем итоги. Вам надо:
    1. html, css. Не надо в них углубляться. Просто основы.
    2. js, jquery. Тоже на начальном этапе не углубляйтесь.
    3. php и какой-нибудь фреймфорк. Symfony или Yii. И какая-нибудь база данных.
    3.1. Узучение какой-нибудь CSS. Drupal например. Или Wordpress.
    4. Система контроля версий. Git.
    5. Математика.
    6. Алгоритмы.
    7. Computer Science в целом. Linux, шифрование, механика работы баз данных и серверов и т.д.
    При этом по сути для трудоустройства хватит первых трех, что бы там кто не говорил.
    Ответ написан
    7 комментариев