Форум программистов, компьютерный форум, киберфорум
Теория и практика программирования
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 1 / 1
Регистрация: 07.10.2017
Сообщений: 86
1

Как лучше поступить?

08.04.2018, 15:40. Показов 506. Ответов 7
Метки нет (Все метки)

Добрый день! Я студент 1 курса специальности "Компьютерные науки". Сейчас мы изучаем язык Си, вроде, на втором С++ и Веб.
По сути, учим только базу, не заходя дальше программы. Думал, где-то найти зарубежную книгу по программированию, но теперь надо определиться с языком: С или С++, ведь С++ актуальнее, или вообще какой-нибудь другой ЯП. Думаю, может рациональнее на протяжении всего обучения в ВУЗе изучать только один язык, а то получится, что программировал на нескольких, а толком ничего серьезного сделать не смогу. Как лучше поступить, выбрать что-то одно или совмещать?

Также вопрос: можно ли где-то купить в бумажном варианте книгу на английском по ЯП б/у, а то оригиналы стоят слегка дорого.
И есть ли книги\сборник алгоритмов, так как хочу на 2 курсе поучаствовать в олимпиаде по программированию.

Спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2018, 15:40
Ответы с готовыми решениями:

Как лучше поступить?
Видеокарта GeForce GTX570 Процессор Intel Core i7 2600K Модуль памяти Kingston HyperX 4096Mb x2...

Как лучше поступить?
Доброго времени суток. По непонятной причине вышел из строя один из двух таких модулей. Как лучше...

Как лучше поступить?
Есть активно работающая таблица с несколькими десятками тысяч записей. Только сейчас появилась...

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

7
3250 / 2052 / 351
Регистрация: 24.11.2012
Сообщений: 4,903
09.04.2018, 13:28 2
Цитата Сообщение от killthis Посмотреть сообщение
Думаю, может рациональнее на протяжении всего обучения в ВУЗе изучать только один язык
Нет, потому что в этом случае твой словарь будет ограничен только одним языком и его идиомами. Если мы говорим об обучении и расширении кругозора, то лучше изучать несколько, пусть и не досконально.

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

Некоторые примеры.
Процедурный язык со статической типизацией. Кандидаты: Pascal, C. Если уже писали на С, хвататься за паскаль смысла нет.
Объектно-ориентированный со статической типизацией: С++, Java, C#. Здесь, правда, еще играет роль управление памятью, которое ощутимо отличается в С++ и Java/C#. Поэтому можно взять С++ и еще один.
Функциональный с динамической типизацией: любой из семейства Lisp.
Функциональный со статической типизацией: Haskell, F#, ML, OCaml, Scala. Причем Scala сильно отличается от семейства ML, поэтому можно взять его и еще один какой-нибудь.
Объектно-ориентированный с динамической типизацией: Python, Ruby, PHP.
Скриптовый язык для рутины: bash, PowerShell (?).

Ну и так далее. Это только ориентир, список можешь составлять на свой вкус, приоритеты тоже на свое усмотрение.
0
1379 / 629 / 81
Регистрация: 01.10.2012
Сообщений: 3,034
10.04.2018, 07:29 3
С - замечательный язык, который, однако, мало кто любит. Причина - говнокодить на С тяжко, все должно быть сделано аккуратно и скрупулезно, иначе работать не будет. А вот на тех же плюсах - пожалуйста, особенно привлекая std. А уж на жабе.. Поэтому начинать с С - хорошая концепция преподавания.

Книги - правду сказать, я никогда не верил в их эффективность, но чем раньше Вы научитесь читать английские оригиналы - тем лучше. Пытаться это как-то обойти - пустая трата времени. А главный метод совершенствования - решать задачки. Например
Посчитать число слов в строке char *. Разделителем считается любое число пробелов, табов и символов конца строки
Нравится этим заниматься? Цепляет? Если нет, то возможно лучше смотреть в сторону веба, "технологий" и.т.п. Таких задачек на этом форуме масса - вот и решайте их, а книги никуда не убегут
0
Модератор
2842 / 2008 / 431
Регистрация: 26.03.2015
Сообщений: 7,721
10.04.2018, 14:23 4
Цитата Сообщение от killthis Посмотреть сообщение
Думаю, может рациональнее на протяжении всего обучения в ВУЗе изучать только один язык
В первую очередь нужно изучать не языки, а концепции. Так как в разных языках используются разные концепции, то, чтобы знать их все, нужно изучать различные языки. Но не нужно изучать их подробно. По большому счёту даже не обязательно уметь решать на них практические задачи (типа, загрузить html страницу с сайта, распарсить и сохранить данные в csv файл). Важно понимать принципы.

Как минимум один язык нужно изучать более детально. В частности, уметь решать практические задачи, знать окружение (библиотеки, фреймворки и т.д.).

Позже один язык нужно изучить очень подробно. Знать, что скрывается за каждой инструкцией (какие инструкции процессора за ней стоят, что при этом происходит с памятью, со стеком и т.д.).


Цитата Сообщение от killthis Посмотреть сообщение
И есть ли книги\сборник алгоритмов, так как хочу на 2 курсе поучаствовать в олимпиаде по программированию.
Обычно решение олимпиадной задачи (начального уровня) сводится к выбору подходящей структуры данных. Иногда требуется знание математики (в основном - теории чисел).

Просто изучайте структуры данных.
0
Модератор
2842 / 2008 / 431
Регистрация: 26.03.2015
Сообщений: 7,721
10.04.2018, 14:25 5
Цитата Сообщение от 0x10 Посмотреть сообщение
парадигму и типизацию
Куда отнести Форт, Оз, Пролог, Джей (и прочие АВЛ-подобные языки)?
0
3250 / 2052 / 351
Регистрация: 24.11.2012
Сообщений: 4,903
10.04.2018, 14:41 6
Цитата Сообщение от Shamil1 Посмотреть сообщение
Куда отнести Форт, Оз, Пролог, Джей (и прочие АВЛ-подобные языки)?
В отдельную категорию/категории, на свое усмотрение. Я и не пытался дать исчерпывающую классификацию.
0
Модератор
2842 / 2008 / 431
Регистрация: 26.03.2015
Сообщений: 7,721
10.04.2018, 17:16 7
Лично мне не нравится такая классификация.

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

Многие языки являются мультипарадигменный. Например, F# подходит во все перечисленные категории (процедурный, объектно-ориентированный, функциональный, скриптовый, со статической типизацией, с динамической типизацией).

Я не вижу смысла изучать С++, если не собираешься на нём писать. Для человека, знающего Си и какой-нибудь ООП язык, там мало чего нового.
Я не вижу смысла изучать Python/Ruby/PhP, если не собираешься на нём писать. Для человека, знающего какой-нибудь "статический" ООП язык, там мало чего нового.
Я не вижу смысла изучать PowerShell. Разве для того, чтобы понять, насколько ужасна слабая типизация, когда она ещё динамическая и неявная.

Итого из всего списка остаются Lisp, Haskell и какой-нибудь язык для работы. Язык для работы определяется в первую очередь платформой (нативный код, JVM код, .NET код). Причём, во втором варианте, не зависимо от выбранного языка, нужно знать Java, а в третьем варианте - C#. Но это не значит, что начинать надо с одного из них.
Конечно, можно выбрать что-нибудь специфическое (Fort, K, Erlang ...) или экзотическое (RPG, 1C, Delphi, ...), но я бы всё-таки ориентировался на наиболее востребованные языки.
0
3250 / 2052 / 351
Регистрация: 24.11.2012
Сообщений: 4,903
10.04.2018, 17:31 8
Цитата Сообщение от Shamil1 Посмотреть сообщение
Лично мне не нравится такая классификация.
А я и не говорил, что ее обязательно нужно принимать. Нужно уметь составить свой список.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Типизация может быть не только статической или динамической.
Я в курсе.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2018, 17:31

Как лучше поступить?
Есть чистый сайт на нем 2000 страниц тиц 0 и пр 0 что сделать что бы яша весь его проиндексил...

Как лучше поступить?
Есть уже законченное приложение. Принцип которого вэб приложение, грузящее основную часть через...

Как лучше поступить.
Здравствуйте. Собственно такой вопрос: Почти доделал сайт из 100 страниц рерайта (для людей),...

Как лучше поступить?
Доброго времени суток всем. Есть не совсем стандартный вопрос.. Имеем систему мать - Gigabyte...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru