Задать вопрос
  • Какие области computer science нужно знать full stack веб разработчику?

    bingo347
    @bingo347
    Crazy on performance...
    Веб-разработчику знание computer science не обязательно, но полезно. Помимо общего развития оно позволит писать более производительный и менее ресурсоемкий код.

    Что стоит изучить:
    1. базовое устройство и принцип работы ЦП и ОЗУ, как выполняются команды, как происходит чтение и запись памяти, как работают процессорные кэши, как работают прерывания и для чего они нужны.
    2. базовое понимание ассемблера хотя бы для одной архитектуры (наиболее актуально x86_64)
    3. базовое понимание как работает ОС - системные вызовы, отличие user space от kernel space, отличие микроядерной и монолитной архитектур. Что такое виртуальная память

    Помимо общих тем полезно будет знать более прикладные вещи:
    1. Структуры данных, какие есть, какая для чего нужна и где ее более оптимально использовать
    2. Алгоритмы, алгоритмическая сложность (о-нотация и омега-нотация), знание о наличии распространенных решений и понимание, какое решение будет наиболее оптимально в конкретном случае
    3. Архитектура программного обеспечения
    4. Паттерны проектирования
    5. ООП (наследование, инкапсуляция, полиморфизм подтипов (на наследовании и на интерфейсах), композиция, абстракция)
    6. ФП (функции высшего порядка, замыкания, параметрический полиморфизм, композиция, ассоциативность, контроль побочных эффектов, монады и функторы)

    А еще есть закон протекающих абстракций, согласно которому не лишним будет знать, что и как у нас работает под капотом:
    1. как работает интерпретатор python
    2. как работают интерпретаторы js (на примере v8 хотя бы)
    3. как работают JIT компиляторы, и как это вообще возможно если executable память read-only, а writable память не executable в большинстве популярных ОС
    4. как работает сборка мусора, какие есть алгоритмы, почему большинство сборщиков мусора используют поколения. А конкретно к v8 еще можно задать актуальный для react вопрос: почему иммутабельность и постоянное создание коротко-живущих объектов в js относительно дешево, если аллокация памяти - это дорого?
    5. как работает браузер, как он рисует страницу, как обрабатывает event-loop js

    P.S. большинству работодателей предлагающих работу связанную с разработкой в вебе это все нафик не сдалось от нанимаемого разработчика... большинству работодателей нужно тупое формошлепство на фронте и создание тупых проксей от БД до фронта на бэке... но те немногие работодатели, кому эти знания стоят острой необходимостью, готовы платить практически любые деньги разработчику, который все это знает и умеет применять на практике.
    Ответ написан
    4 комментария
  • Размещение сайта на компьютере вместо хостинга?

    ipswitch
    @ipswitch
    IT-инженер
    Убиться веником и арендовать VPS.
    Чтобы Ваш "комп" тянул это, при большой посещаемости должен быть отличный исходящий канал в интернет, быстрый RAID-массив или крутой SSD, и как минимум Windows Server 2012 =)
    Ответ написан
    1 комментарий
  • Размещение сайта на компьютере вместо хостинга?

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

    Файлы (и изображения) нужно хранить в отдельных специальных местах, например Amazon S3 (так же есть много аналогов вплоть до "арендовать другой сервер с минимальным количество CPU/RAM и максимальным HDD диском, но это тоже плохой вариант):
    https://aws.amazon.com/ru/s3/pricing/

    И, конечно же, вам не нужны фотографии в том же качестве, что и на фотоаппарате, если вы хотите показать работу, а не продаете эти фото.
    Ответ написан
    7 комментариев