LINUX.ORG.RU

Вникаю в мир разработки

 , идиот, ,


2

1

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

Если очень мягко выразиться, то в свои 19 лет — я полный профан в программировании, да и вообще во всём околокомпьютерном: меня почему-то совсем не интересовало, как и что там устроено, как оно работает — я вообще никогда толком не задумывался об этом. Компьютер, по большему счёту, всегда для меня был источником развлечения, ну и доступа в сеть. Быть может, ввиду того, что появился он достаточно поздно и я старательно пытался реализовать все свои пользовательские потребности, накопившиеся за время его отсутствия.

Чуть позднее, будучи рядовым пользователем сети, моё внимание привлекло сайтостроение (возможно, тут вы не слышали, но есть такая система — uCoz — бесплатный конструктор сайтов). Я создавал с её помощью свои первые сайты, редизайнил стандартные визуальные стили и, таким образом, постепенно освоил азы HTML и CSS. За время длительной практики (год-полтора) я более-менее хорошо освоил эти два формальных языка. Научился кроссбраузерной, валидной вёрстке и т.д и т.п. По большему счету, мне помогли в этом курсы и парочка авторитетных ресурсов в этой области.

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

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

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

P.S. Я, конечно, не такой уж и профан, каким возможно пытаюсь себя выставить, но в своём треде хочу показаться именно таковым, чтобы получить более детальные наставления и материалы для обучения. Надеюсь на вашу помощь.



Последнее исправление: Dotcom (всего исправлений: 4)

Ответ на: комментарий от fragmentor

Совковские ВУЗы ничего не дают. Из них выпускаются «математики», умеющие только интегралы брать

panfutij
()
Ответ на: комментарий от NiceForce

Мысль такая, что писать на C в вебе это извращение. Даже на десктопе то не фонтат (low level не в счёт).

И вторая, что сравнивать C с Ruby это как яблоки сравнить с белазом.

anonymous
()
Ответ на: комментарий от panfutij

Ну снова. Я ведь предложил ему C только в одном плане — в плане обучения. Дальше пусть выбирает, что он там захочет; я, например, выбрал Java (так нужно), и не представляю, как бы мне давался этот выбор с пустыми рукавами: без «своего Си».

NiceForce
()
Ответ на: комментарий от anonymous

Ответил в посту выше.

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

NiceForce
()
Ответ на: комментарий от anonymous

Все правильно сказал. Можешь Python, Django/Flask/Bottle, Ruby, Rails заменить на другие слова которые встретятся в заказе на фрилансе. Я так в свое время и сделал. Правда слова при этом мне попались дерьмовые. Ну что делать...

Suntechnic ★★★★★
()
Ответ на: комментарий от NiceForce

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

anonymous
()
Ответ на: комментарий от panfutij

Если он решил освоить программирование, то полезно испытать себя на «крайностях» — оценить свои силы — и сделать правильный вывод.

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

NiceForce
()
Ответ на: комментарий от NiceForce

А, ну может.

научить следить за памятью и точно помнить типы

В моём любимом CL это делает рантайм

panfutij
()

учи плотно html+css+js, востребованность колоссальная, учится связка быстро

umren ★★★★★
()
Ответ на: комментарий от anonymous

У меня есть лишний, могу поделиться.

Dotcom
() автор топика
Ответ на: комментарий от Dotcom

Ну ладно, научись тому, что можно взять готовую CMS и это сделать гораздо проще, чем самому наклепать непонятно что, а потом возьми готовую CMS.

SjZ ★★★★★
()

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

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

В таком случае, добавлю.

Можно ещё попробовать русскоязычные курсы от центра «Специалист»: разжевывают крайне доступно, если вдумываться и импровизировать, а не копировать все действия, то профит будет годный.

Остальное дело за литературой, естественно.

NiceForce
()
Ответ на: комментарий от PolarFox

Один поток

ЦПУ тоже по одному потоку на ядро работает. И ничего, как-то сотни процессов одновременно работают.

Wizard_ ★★★★★
()
Ответ на: комментарий от Wizard_

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

PolarFox ★★★★★
()
Последнее исправление: PolarFox (всего исправлений: 1)
Ответ на: комментарий от stevejobs

На курсере (или если не знаешь английского - в интуите) - пройди курс по основам веб-программирования

Названием не поделишся?

dizza ★★★★★
()

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

Посмотри обучающие курсы (видео) от яндекса.

orm-i-auga ★★★★★
()
Ответ на: комментарий от stevejobs

Зато для новичков есть это — https://www.coursera.org/course/startup

  • Introduction and Quickstart
  • Tools: VMs, IAAS/PAAS, Unix Command Line, Text Editors, DCVS
  • Frontend: HTML/CSS/JS, Wireframing, Market Research
  • Backend: SSJS, Databases, Frameworks, Data Pipelines
  • APIs: Client-side templating, HTTP, SOA/REST/JSON, API as BizDev
  • Devops: Testing, Deployment, CI, Monitoring, Performance
  • Dev Scaling: DRY, Reading/Reviewing/Documenting Code, Parallelizing
  • Founding: Conception, Composition, Capitalization
  • Business Scaling: Promotion, CAC/LTV/Funnel, Regulation, Accounting
  • Summary and Demo Week
NiceForce
()

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

Если воротит, скажем, мысль о «пиратстве», то должен порадовать, что авторы не сильно этому препятствуют. Всё ок. )

Google > «Специалист | Основы программирования и баз данных»

Немного содержания:
(суммарная продолжительность ~ 18 ч.)

  • Модуль 1. Базовые понятия и определения
    • Задача. Решение задачи;
    • Алгоритм. Свойства алгоритмов;
    • Программа. Программное обеспечение;
    • Информатика. Информация. Информационная технология;
    • Данные. Числа в арифметике;
    • Выражения. Операнды. Знаки операций. Идентификаторы. Константы;
    • Законы арифметики (коммутативность, ассоциативность, дистрибутивность).
  • Модуль 2. Представление данных. Принцип программного управления
    • Основы алгебры логики;
    • Системы счисления; Связи между системами счисления;
    • Основы арифметики двоичных чисел;
    • Принцип программного управления. Базовая архитектура и структура ЭВМ. Принцип фон Неймана;
    • Единицы измерения ёмкости запоминающих устройств;
    • Представление целых и вещественных чисел в памяти ЭВМ;
    • Диапазоны представления чисел в двоичной системе счисления;
    • Представление символьной информации. Кодовые таблицы;
    • Понятие типа данных.
  • Модуль 3. Методологии и языки программирования
    • Стадии и этапы разработки программ. Проектирование. Реализация.
    • Проблемы программирования;
    • Методологии программирования. Классификация методологий программирования (структурное, объектно-ориентированное, логическое, функциональное, программирование в ограничениях). Структурное программирование. Базовые принципы (пошаговая детализация, модульное структурное программирование);
    • Объектно-ориентированное программирование. Базовые принципы (абстрагирование; инкапсуляция; наследование, полиморфизм);
    • Языки программирования. Классификация.
  • Модуль 4. Структуры данных. Основы проектирования баз данных
    • Базовые структуры данных – массивы и записи;
    • Основные операции над структурами данных;
    • Динамические структуры данных. Списки. Стеки. Деревья;
    • Информационная система. Понятие базы данных. Требования пользователей к базам данных;
    • Проектирование баз данных;
    • Цели и этапы проектирования. Инфологический аспект. Модель «сущность-связь». Даталогический аспект. Модели данных (иерархическая, сетевая, реляционная) их достоинства и недостатки. Реляционные базы данных. Понятие отношения. Нормализация. Системы управления базами данных;
    • Базы данных и компьютерные сети. Сетевые и распределённые базы данных.
  • Модуль 5. Лаб.раб. 1. Система программирования. Этапы реализации программ
    • Установка и настройка системы программирования на языке С;
    • Кодирование. Структура программ на языке С;
    • Компиляция и редактирование связей;
    • Выполнение программы в системной консоли;
    • Разработка простейших программ на языке программирования С. Объявления. Выражения. Форматный ввод-вывод данных.
  • Модуль 6. Лаб.раб. 2. Основы структурного кодирования. Управляющие структуры
    • СЛЕДОВАНИЕ как простейшая управляющая структура. Условные выражения как основа формирования управляющих структур. Операции отношения и логические операции. ВЕТВЛЕНИЕ. Ветвление «если-то». Ветвление «если-то-иначе». ПОВТОРЕНИЕ (ЦИКЛЫ). Циклы с предусловием. Циклы с постусловием.
  • Модуль 7. Лаб.раб. 3. Проектирование и реализация базы данных
    • ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

      Анализ предметной области. Выделение сущностей и их атрибутов. Составление универсального отношения. Нормализация.

    • РЕАЛИЗАЦИЯ БАЗЫ ДАННЫХ

      СУБД Microsoft Access. Структура рабочего пространства. Объекты базы данных. Таблицы, запросы, отчёты, формы. Создание таблиц данных в режиме конструктора. Формирование запросов. Связывание таблиц. Построение отчётов.

  • Модуль 8. Лаб.раб. 4. Использование языка SQL для программного извлечения сведений из баз данных
    • Что такое SQL? Краткий обзор. Формирование запросов к базам данных на примере программы Microsoft Query. Создание простейшего запроса. Оператор SELECT. Квалифицированный выбор – предложение WHERE. Запрос нескольких таблиц, как одной.
NiceForce
()

Вот что я тебе скажу. Не слушай тут никого.

Берешь турбо-паскаль и херачешь на нем десяток самых простых сайтов. Зато потом будешь понимать что к чему и заодно HTTP-протокол выучишь

gobot ★★★★
()
Ответ на: комментарий от yaspol

Вы рекомендуете Python - Django, но он не разберется как работает Джанго. Руби для веба, по-моему лучше.

geometer
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.