Meet speakers from Tinder, IBM, Siemens, Indeed and other QA Rockstar’s on …Testing Stage, Save $30 till 28/02
×Закрыть

Книги для не совсем начинающего

Всем привет!

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

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

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

Но, я считаю, что мне нужна более солидная computer science база.

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

Что такое JSON, в чем разница между обычным сервером и веб сервером, AJAX, JIT компиляция, кодировка текста, понимание работы памяти, компилятора и его элементов, симуляция сервера, GIT, протоколы и т.д.
Такие вещи как протоколы, можно объяснить одной фразой, но мне сейчас кажется, что чтобы действительно это понять, книги о них будет мало.
Я когда-то два дня не мог запустить мой код в VSC на линуксе, хотя делал все правильно. А от одного вида панели настроек VSC у меня до сих пор судороги.

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

Писать какую то чепуху в CodeWars или SoloLearn, и писать настоящий код.
Это абсолютно разные вещи как по мне. На Microsoft Visual Studio и JetBrains я вообще боюсь смотреть.

Подобных вопросов мои поиски нигде не обнаружили, обычно просят или слишком банальные вещи, или слишком сложные. Именно этой «середины» мне не хватает, и именно ее я найти не могу.

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

Лучшего места для моего вопроса чем это, я так же не смог придумать. Получилось наверное не очень лаконично, извините, и еще раз спасибо :)

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Вопросы очень хорошие, и, раз они возникают, я бы посоветовал следующее

1. Найти хорошего ментора, общаться регулярно (раз в 2-4 недели). Пусть делится опытом и не дает тебе забросить/забить.
2. Искать туториалы по интересующим тебя вещам и не бояться просто их повторять шаг за шагом. Люди ведь так и учатся. Заодно и сможешь избежать аналитического паралича, когда кажется что надо еще столько всего знать перед тем как хоть за что-то взяться.

Лично мне нравятся вот эти: docker compose in 12 minutes, budiling a full text search app using docker and elasticsearch — ну и дальше искать подобные. Очень много прикольных вещей можно накопипастить со всяких базовых обучалок по machine learning — ты не станешь экспертом, но я помню свое впечатление от первого же туториала по распознаванию цифр с MNIST.

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

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

komputasi.files.wordpress.com/...​n.3.01pre.2017.170215.pdf

Смотри есть два подхода:
1) Идти в универ/курсы и 2-5 лет изучать основы компьютер сайнс со всеми подробностями. Через N лет найти работу и учиться на практике применять полученные знания.
2) Самообучаться практическим навыкам через проектные задачи с постепенным погружением в компьютер сайнс и более глубоким пониманием как оно устроено.
Ты же пытаешься самостоятельно изучать комьютер сайнс, пытаясь подойти к ним с разных сторон и неудивительно, что не хватает мотивации и результаты скорее печалят, чем радуют — потому что комьютер сайнс сложная штука, и самостоятельно построить план обучения сложно. Или как минимум сложно без толкового наставника.

Если ты идешь по второму пути — нужно ставить себе практическую задачу — сделать такую-то штуку на своей жаваскрипте. Решение задачек на сайтах не дает ощущение, что чему-то научился. А самообучение работает и сохраняет мотивацию только когда есть постоянный прогресс, и понимание, что приобретаешь конкретные новые навыки. И для этого нет пути лучше, чем через выполнение небольших проектов.
Еще есть неплохая штука для начала — пройти какой-то джаваскрипт буткамп — за пару недель дадут базовые знания и навыки, от которых дальше можно развиваться. Но я не знаю есть ли такое вообще в Украине.

Еще есть неплохая штука для начала — пройти какой-то джаваскрипт буткамп — за пару недель дадут базовые знания и навыки, от которых дальше можно развиваться. Но я не знаю есть ли такое вообще в Украине.

Да просто собраться с любыми желающими, которые, скажем, хоть один толковый курс прошли, на квартире или в коворкинге каком-нить и вместе запилить какой-нибудь проект.
По сути, аналог той же «школы 42».
Лучше еще взять куратора с опытом работы, он хоть подскажет что-то, а то это будет кружок самодеятельности, а не работа над проектом.

Я согласен с одним из комментаторов что нужно больше практики и всё прийдёт. Для того чтобы найти первую работу не обязательно знать всё в таких деталях как описано в посте, тем не менее желание это знать похвально. Я бы посоветовал замечательный канал на YouTube, Akademind называется. Всё естественно на английском, там много интересного для человека, который хочет изучить JS. Maximilian Schwarzmüller его ведёт, у него на его сайте (одноимённый с каналом) есть инфа по поводу основ работы с Git и куча всякой всячины, которая тоже может быть интересна. И конечно же курсы на Udemy от него, в которых достаточно практических заданий чтобы сделать после этого какой-то pet project и было что показать.
А после этого искать работу и уже по ходу дела доучивать и углублять знания.
Удачи!

Несколько неблагодарных советов:

1. Меньше теории, больше практики. Сложно понять какую-то концепцию, если не понимаешь зачем она нужна. Понять необходимость, зачастую, можно только когда столкнулся с проблемой на практике. В идеале, начинаешь пет-проект с языком, порог входа в который пониже (python, javascript) и где результат виден быстрее (правда, потом, перейти на язык со статической типизацией будет сложнее, но тут уж не до жиру). Пока будешь писать один, необходимость очень многих вещей так и останется непонятной. Например, необходимость в большинстве команд гита, многих архитектурных решений и фреймворков останется загадкой. Но что поделать? Это следующий шаг.

2. Больше используй обучающего видео. Там чаще разжевывают. Обычно много дубликатов одного и того же. Если плохо подали в одном, в следующем это может быть более понятно.

3. Начни с низу. Постарайся писать первый код вообще без IDE. Когда поймешь, как это работает, переходи к IDE, будет проще понять что это и зачем. Если путаешь где IDE с его настройками и конфигурационными файлами проекта, а где выполняемый код, компилятор и т.д.

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

Текст, как основной источник, само собой. Видео для иллюстрации того как именно что-то делается и для разжевывания непонятного.

я считаю, что мне нужна более солидная computer science база

На днях купил себе книжку на >1k страниц именно по Computer Science, чтобы при помощи нее пробелы заполнить.

И в который раз прохожу курс по одному яп. Он же разбирается и в той книге, которую приобрел.
В курсе некоторые задачи в домашних заданиях раньше мне казались слишком сложными. А в гугл я не лез для решения, потому что это погуглить и забыть уже через пару дней. Решил сам, эдак с четвертого прохождения того же курса. Перед их решением даже наивно думал, что с курсом что-то не то. Как оказалось, это я 2+2 слишком долго складывал.

Можна поцікавитись що за курс і книга?

Они не по JS.

Курс по Java от itvdn. Препод — только Евгений Тихонов.
Книга «Computer Science. Основы программирования на Java, ООП, алгоритмы и структуры данных». На Kindle у меня ее англоязычная версия. Но английский слабоват, потому купил русскоязычную, буду билингвически читать. Пробовал обойтись только англоязычной, стал спотыкаться и понял, что это немного лишнее самоистязание.

*а, тьфу. Подумал, что ты автор топика. Он JS указал.

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

На Microsoft Visual Studio и JetBrains я вообще боюсь смотреть.

только vim, только хардкор !

Всем привет!

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

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

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

Но, я считаю, что мне нужна более солидная music science база.

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

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

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

И забыл сказать, все же вы слишком категоричный. Я понимаю ваше «высокое» мнение.
Но вот скажите мне, как такой вот человек, как я к примеру. Может вообще понимать чего именно хочет ? Мы в какой вселенной ?

Не очень понимаю как

я считаю, что мне нужна более солидная computer science база

уживается с

мое желание в энный раз читать про структуры данных минимально

ну да бог с ним. Если реально хочется разобраться поглубже, то гуглишь любой CS roadmap из сонма доступных в сети, и вперед с песнями. Мне нравится вот этот — teachyourselfcs.com — буквально каждая рекомендованная там книга очень и очень хороша, лучше «более попсовых» (возможно) альтернатив (скажем Computer Networking: A Top-Down Approach заходит куда лучше Танненбаума, Скиена «дружелюбнее» Сэджвика и уж тем более Кормена и т.п.). Но нужно отдавить себе отчет в том, что это будет долго (но весело).

А что там по software architecture?
Как-то сомнительно отсутствует в списке, а на практике как раз HWA и алгоритмы особо не нужны в работе.

Computer Science это не только структуры данных, как это видно хотя бы из роадмэпа. Ну и Танненбаум мне зашёл достаточно хорошо.

Computer Science это не только структуры данных, как это видно хотя бы из роадмэпа.

Я где-то утверждал обратное?

Ну и Танненбаум мне зашёл достаточно хорошо.

Все познается в сравнении. Танненбаум раскрывает тему снизу вверх, Росс и компания — сверху вниз, с уровня приложений. Для новичка последнее «дружелюбнее», как правило.

а какую сложность вызывают IDE, они же облегчают написание кода ?)

если предварительно потратить месяц на изучение самой ide

Но, я считаю, что мне нужна более солидная computer science база.

dou.ua/...​rums/topic/10445/#1591071

Реально всё есть в интернете, но не обязательно собрано как следует и в том виде, в котором лучше всего было бы именно вам.
А так можете идти по варианту: взять список типа такого (не идеальный, но самый известный) и просто гуглить всё в нём сказанное, добиваясь уровня понимания «знаю суть названного слова и отличия от соседних». Дальше поймёте, что углублять под конкретные задачи/требования. Тогда и будет понятно, какие вопросы задавать о книгах.

Знову все вкупу, але я з такого вчив:

github.com/...​rogramming Techniques.pdf добре дає базу ООП та розуміння, як ітеративно будувати більш-менш великі (для новачка) проекти. Також навчить читати С++ (туди ж C, Java, C#). Писати на С++ не навчить — мову покриває дуже хаотично.

docs.python.org/3/tutorial/index.html Офіційна обучалка Пітона. Читається за 3 дні, далі можна на ньому швидко тренуватись у загальному програмуванні (там Арканоїд написать під PyGame, чи щось таке).

www.sugardas.lt/~p2d/books/Priemioop.pdf Класика про те, як робити проекти середнього розміру. Отут і знадобиться вміння читати код на С++. З першого разу повністю не зайде, але певне уявлення про програмування знайдеться.

Далі (як пощастить — вже на роботі) треба буде почитать Седжвіка по алгоритмах та Таненбаума по ОС щоб розуміть, що там під капотом та як воно працює.

P.S. Жодного стосунку до JS, лише програмування)

«Смешались в кучу кони, люди, И залпы тысячи орудий. Слились в протяжный вой...» ©
Дуже хороше починання і не розуміння деяких речей.

1.

Microsoft Visual Studio и JetBrains я вообще боюсь смотреть

Питання по ІДЕ, інструментам дуже добре вирішуються переглядом туторіалів на ютубі.
Вводите, наприклад, «Microsoft Visual Studio для начинающих» і насолоджуєтесь, благо, такого там повно.
2.

computer science база

це алгоритми і структури даних. Також досить багато на ютубі, також є круси на курсері, в тому числі й російськомовні, якщо не вмієте в мову міжнародного спілкування.
3.

чем разница между обычным сервером и веб сервером

Ні в чому %)
4.

Такие вещи как протоколы, можно объяснить одной фразой,

Можна озвучити декількома фразами загальні принципи роботи, для практичного розуміння роботи треба приклади, документація, той же ютуб. Але більшість англійською.
5.

кодировка текста

достатньо статті на вікіпедії.
6.

понимание работы памяти, компилятора и его элементов

це вам, на даному етапі, абсолютно не потрібно і не факт що взагалі колись буде потрібно, якщо плануєте ваяти формочки на жабоскрипті.

Я б порадив вам почати з курсу CS50, на прометеусі, наприклад, courses.prometheus.org.ua/...​etheus/CS50/2016_T1/about
Далі вже книжки, статті і туторіали на ютубі.

CS50

Та мешанина из языков, которая в нем предлагается — это же ужос.

Хз, проклацав пару лекцій і прочитав опис самого курсу по діагоналі.
Для себе нічого нового не побачив тому і скіпнув.
Мені здалось, що це просто вступ аби почита абстрактно що де є, для початківцій саме воно.

Там еще даются задачки.
На Си, вроде, тоже.
Пишут, что довольно сложные. Даже писали, что решать их смогут студенты того же Гарварда, а просто зашедшие поглядеть курс — это как повезет, знаний может не хватить.

Подписаться на комментарии