Что можно реализовать на разных языках программирования? С++ Java Python на какие ОС?

И снова здравствуйте!

Мне прямо как то неудобно снова здесь задавать такие вопросы почти на ту же тематику. Полазил по Google Wikipedia и не нашел то что искал. Написано что мне подходит и С++ Pyton Java а для сайтов ( PHP)
Я понимаю что каждый язык предназначен под определенные задачи!

Но всё же, насколько я понял С++ просто нереально огромен и сложен ( как говорят "сломает мышление напрочь )
Про Java знаю лишь то что написано на Wikipedia и больше нечего по сути.
Про Python то что на нём написан Youtube и то что есть на Wikipedia ( тоже по сути не много)

Подскажите или дайте направление, что же подойдет мне в данный момент и пригодится в будущем. Я благодаря Wikipedia думаю о Python но о нем лестные отзывы только там и в сомнительного содержания
( вроде начните зарабатывать кучу денег или научитесь программировать как царь ) блогах. Что в свою очередь толкает исключительно к С++ ибо о Java я вообще не слышал нечего лестного.

PS Я понимаю что хороший программист должен знать не одни язык но мне хоть старт взять. И пожалуйста не нужно сарказма, я умею пользоваться Google и другими поисковыми системами, о Кнуте знаю, уже скачаны и ждут прочтения. Мне действительно негде и не у кого спросить.
  • Вопрос задан
  • 96320 просмотров
Решения вопроса 5
В первую очередь нужно научится "думать как программист"... но это все бредни)

Если хотите реально чему-то научится то стоит начать с основ.
Это Керниган Ритчи "Язык программирования Си".

С++ не очень сложный язык. Он очень неоднозначный - одна задача может быть решена разными способами и у каждого из них будут свои недостатки. Тем более требует довольно специфических хаков против всяких там SFINAE и constant cast'ов.
Особенно в последнее время стандартов С++ наплодилось...

Учить С++ стоит, но до конца разобраться во всём будет очень сложно.
По минимуму можно прочитать Герберта Шилдтa
У него есть другие толковые книги по С# и Java - тоже можете глянуть.
Ну и мне нравится Подбельский.

С++ хорошо подходит для десктопных приложений.
Тут можно почитать Макса Шлее Qt 4.8
При этом особых сверхъестественных навыков С++ не нужно.
Если хотите ити в "про" уровень - учите коллекцию библиоте boost.

Java в последнее время очень хорошо себя зарекомендовала в вэбе.
Хватит первого тома Core Java. Из фреймворков могу посоветовать Grails и Play2.

Python / JS можно выучить на курсах Codecademy за 2-3 недели. Там же можно разгребсти html/css.

Если хотите пойти в вэб...
Желательно разобраться в haml sass compass stylus jade grunt bower yeoman bower angular библиотеках.

Желательно разобраться с шаблонами проектирования, и почитать Мартина Фаулера.
Есть ещё книги из серии Pragmatic Programmer самое интересное что у этого издательства нет ни одной плохой книги.

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

Для кроссплатформенных мобильных приложений можно разобраться с Air и Flex.
Ответ написан
Комментировать
Gasoid
@Gasoid
Начинайте с python!
С, С++, Java съедят мозг еще на этапе "Hello World". Громоздкие конструкции создания простейшей программки отбивают желание дальше что-то делать.

Python, Javascript

Список сайтов, которые работают на python/django:
Dropbox, Instagram, Mozilla, Disqus, Pinterest, tiu.ru, tranio.ru
Ответ написан
@crackhd
Начинайте с C++ только в случае, если чувствуете тягу к очень сложным задачам. Сам язык ничуть не сложнее (местами логичнее и свободнее ВСЕХ, лишен ненужных сомнительных синтаксических дополнений), но занимает дольше времени и требует больше "опыта" перед адекватными релизами - так как он нативен (в отличае от всех остальных), на нем не очень просто что-то сделать с нуля и быстро, однако для каждой отдельной задачи 100% существует какой-нибудь проект в сети или решение. Реально - нужна любовь к ремеслу. Я так это называю.

Все остальные языки это как стероиды. Но это не минус. Я пишу на C++, C#, подумываю о Java. Но я никогда не пойду к пайтону.
Прежде чем выбирать язык надо знать, что смотреть на самые популярные и продвигаемые не для всех норма. Есть языки, которые просто не достаточно продвигались, в отличае, от, например C# и платформы .net, и Java, которых очень серьезно коммерчески продвигают крупные компании. Языки C/C++ популярны именно из-за своего технического совершенства, это сделало их решениями во многих областях автоматически.
Есть языки, не буду утверждать какие, которые популярны именно благодаря стремлению к "великому святому свободному open-source", и тут тоже не без помощи спонсоров.

p.s. Герберт Шилдт - очень тольковый автор. Еще совет, не тратьте время на то, что вам не нужно, времени понадобится много, например не надо одновременно лезть в десктоп, в веб, в линукс (как примеры). Но всегда полезно знать базис разных технологий.

C/C++ - Кроссплатформенность, но разные компиляторы, для разных ОС (то есть проще говоря разные фреймворки для каждой платформы). Тяжесть языка, если взвешивать на равне с другими любыми. (Я считаю этот язык должен насильно впариваться перед любыми другими, но не шариат же у нас.=))
Oracle Java - кроссплатформенность(включая ОС Google Android)
Microsoft .NET (VB, C#, F# и др.) - неофициальная кроссплатформенность (с тормозами и без WPF - Mono)
Apple Objective-C - язык используемый Apple в своих ОС.
Определитесь, хотите ли вы быстро создавать, или хотите действительно знать. Возможно задачи совместимы.

Возможно вам действительно стоит пойти в сторону Java, но никак не Python (ИМХо).
Если хотите идти в сторону веба начинайте с абстрактного понимания HTML, CSS, PHP, а затем уже думайте что вам надо, Flash, Java, или припрет работать на стороне сервера.=)
Ответ написан
@danob
Вам нужно пройти практикумы:

- (для разогрева) "Introduction to Interactive Programming in Python", Rice University, на Coursera.org; (или аналогичный там же, или что-то по питону на Udacity.com, Udemy.com etc.)

- "Introduction to Programming in Java" (всего 4 главы, но десятки и сотни примеров, заданий и выполненных заданий от топ-кафедры по программированию)

Курсы на Coursera.org:

- "Algorithms, I", Princeton University

- "Algorithms, II", Princeton University

- "Introduction to Databases", Stanford University (он же на edX.org)

- "Introduction to Computer Networks", University of Washington

- (опционально) "Natural Language Processing", Stanford University or Columbia University

- (опционально) "Artificial Intelligence Planning", University of Edinburgh

Курсы на Udemy.com:

- "Java For Complete Beginners"

- "Java Multithreading"

- "Java Design Patterns and Architecture"

- "Java Swing (GUI) Programming: From Beginner to Expert"

- "Java Servlets and JSP"

- "The Java Spring Tutorial"

А также изучите построение клиент-серверных приложений на основе Netty (см. netty.io/wiki/).

Если план сработает, дайте знать через полгода!

Богдан
Ответ написан
Комментировать
@tsegorah
Вы написали бы ещё свой текущий уровень знаний по математике, программированию, алгоритмам, было бы проще подсказать.
А вообще для обучения, если у вас совсем мало знаний в этой области я рекомендовал бы java, по моему мнению в обучении язык со строгой типизацией был бы лучше. Си хорош, но предполагаю что для начинающего порог вхождения будет выше чем в java. Попробуйте книгу "Head First Java / Изучаем Java" - конкретно её я не читал, но остальные книги серии для начального обучения самое то. Потом рекомендую философию java от Эккеля, а дальше сами поймете что вам нужно ещё.
А с точки зрения применения языков, на работе используем java, python, c++(qt), правда я в основном на java пишу. Все эти языки нужны и с ними вы не пропадете, но вакансий на java больше)
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Бессмысленный вопрос. Программировать можно на чём угодно. И всё это бред про "начинать стоит с основ".
Сделать следует две вещи. Порядок не важен!

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

Посмотрите на разные языки программирования. Здесь, наверное, следует исключить эзотерику и функциональщину, ибо с ними сложно что-то толковое сделать не имея опухоли мозга (шучу, конечно). Их много: python, c++, java, go, ecmascript, nasm, c# (mono)... Список огромен. Большинство из них распространились на огромные области. Не важно: геймдев, вебдизайн, банки, транспорт - в каждой из них можно применить практически любой инструмент. Более того, в каждой из них применяется часто сразу несколько инструментов. Так что первый выбор почти не на что не повлияет.

Тут стоит сразу пару моментов осветить.
Во-первых, матанозированность различна. Наименьшая она в вебе. Наибольшая, наверное, в банках. Где-то посредине геймдизайн, хотя не так давно, он был куда более матаноёмкий, сегодня большая часть матана закралась где-то в библиотеках (впрочем, с логикой всё равно придётся подружиться).
Во-вторых, платформа. Некоторые языки заточены под одну платформу (c - *nix, c# - ms), что, в прочем, не запрещает их использовать на других платформах, там есть свои особенности (нормального чисто win'ового компайлера Си под вином до сих пор нет, а его WinAPI на Си убого чуть более чем полностью, тогда как порт c# - mono - имеет множество особенностей при работе на неродных платформах). А ECMAScript (js) вообще одно время работал только под браузером, хотя сегодня делать native-приложения на нём довольно затруднительно (если, конечно, ОС - это НЕ браузер), да и возможности его ограничены API браузеров, которые часто различаются между собой.

Но это всё детали. Они есть везде. Можно делать backend на c++, можно на python, можно на node.js. Можно писать игры на C# (XNA/Unity/monogame), можно на js (браузерные игры сегодня распоряжаются и webgl). Так что что больше нравиться, то и изучайте. И не стоит с основ. И тем более не стоит отождествлять Си и "основы основ".
Ответ написан
Комментировать
@MAYBOCH Автор вопроса
Спасибо большое за ваше время и ваш развернутый ответ.
Насколько я понял если я начну учить от Кернигана то пойму что для чего и вообще что к чему.
Именно 2-е издание Кернигана? Про Шилдта наслышан.

Значит С и С++
Ответ написан
@danob
"Introduction to Programming in Java" - на introcs.cs.princeton.edu
Ответ написан
Комментировать
@venom_is_one
Мышление ломает ассемблер, а С++ наоборот - мышление затачивает.
Ответ написан
Комментировать
@vladimirportnov
Я считаю,что если вы на самообразовании,то надо начать с python,он написан на C++,но он попонятнее нем C++,на python вы поймёте,что такое программирование,и потом легко стартанёте в C++.Я именно так начал программировать.Но нужно будет много читать!
Ответ написан
Комментировать
@nicomunet123
Не знаю. Я начинал учится программировать с байсика. Потом плюсы, сейчас джаву. Вроде все понимаю.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы