LINUX.ORG.RU

Прошу помощи с определением

 , , ,


0

5

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

Итак, вот первый вопрос. Без пристрастий и без холивара, но на какой системе стоит начинать обучаться? Одинаково уютно чувствую себя как на GNU/Linux, так и на оффтопике. Где это делать правильнее и удобнее?

И второй вопрос. Я понимаю, что каждый язык для отдельной цели, что программист должен знать далеко не один язык. Но с чего начать? Сейчас 3 фаворита: c++, java, python. Я больше склоняюсь к сишке, как языку с большим потенциалом и большего порога вхождения.

Ну и заодно ко второму вопросу спрошу - каким ide вы пользуетесь и почему именно им?

Если кто сам когда-то так начинал - очень надеюсь на ваши объективные советы.

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

Любой из перечисленных ЯП подходит для написания софта широкого спектра применения.

Это как выучить китайский и арабский и иврит - а вдруг тебе будет удобнее с испанцем на испанском говорить и он поймет на 3% лучше чем на английском - значит и испанский выучим.

Это как купить много платьев чтобы в зависимости от настроения надевать разное, и кучу туфель. И сумочек. А вдруг надо просто не быть дурой? :)

I-Love-Microsoft ★★★★★
()

Если много времени и просто из интереса, учи все перечисленное, хуже не станет. А учитывая, что Java и С++ синтаксически похожи, то на начальном этапе будет одинаково все.

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

Ну в Ада, ничего плохого нет, ну и в Коболе тоже, но если с прицелом на работу, то не стоит не для СНГ стран знания.

Smetchik
()
Ответ на: комментарий от I-Love-Microsoft

Это как купить много платьев чтобы в зависимости от настроения надевать разное, и кучу туфель.

Именно так я и делаю.

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

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

Deleted
()

Идеал - Pascal. Статическая типизация, указатели, простой синтаксис. Питон - отличный язык, но динамическая типизация может сломать мозг. Жаба - без ООП никуда.

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

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

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

cl-gtk2 seems to be latest and active as of Sept 2009
lambda-gtk GTK objects are just untyped alien pointers (the Lisp incarnation of C's void*)
lgtk is lispish enough, but incomplete

gtk-demo в cells-gtk работает, хоть и ругается на недавно изменившийся API в CFFI. Примеры в туториале CommonQt тоже работают.

В любом случае можно написать биндинг самостоятельно. Создать универсальную библиотеку-биндинг к GTK+ сложно, так как, во-первых, тулкит очень большой, и, во-вторых, библиотеку нужно написать в стиле CL, то есть, отобразить иерархию классов C в иерархию классов CLOS, дать возможность передавать лямбды в качестве колбеков и отследить возможные проблемы при пробросе рестартов. Однако, сделать биндинг для небольшого подмножества, использущегося в конкретной программе, ненамного сложнее, чем написать то же самое на C.

C подразумевает ручное управление памятью и про безопастность можно забыть с любыми руками.

Это бессмысленный максимализм.

лисп в рантайме с сишными либами - это лютый ад.

Для работы с сишными либами в CL есть свои подходы. Можно писать в стиле C и оборачивать каждое выделение ресурсов в unwind-protect. Макросы позволят это упростить. Можно назначить финализатор на выделенный указатель, который освободит память когда указатель будет собран сборщиком мусора. У этих подходов есть недостатки, но лютого ада они не представляют.

Jini ★★
()

смотря, чем дальше собираешься заняться. озвучь свои пристрастия: веб, контроллеры, десктоп, мобилы, может еще что?

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

ну вот тогда и сходится все: java. на ней и проще будет въехать.

IDE рекомендую IntelliJ IDEA. Сам найдешь, где взять.

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

самый фичастый статически типизированный --- Haskell

4.2 же, в нём человеческих зависимых типов нет.

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

И чего я тебе должна сказать, что в отличие от линукса, люди, которые профессионально программируют для виндовс, библиотеки покупают?

И что?

Я не знаю, но думаю, что все детские болезни и симптомы опенсорс решений там давным-давно преодолены.

Му-ха-ха :) А к примеру вирусы выносящие уелые отрасли промышленности - от от давно решённых проблем? :-)

98% софта пишут именно для виндовс, 2% для эппл.

Для десктопов. Но как ты думаешь, откуда твой браузер берет эти буковки и картиночки? Кто их ему отдаёт? Нуйди там виндофффс (есть еа донышке) или тыблоко (в реальном мире не встречается)

Eva

Тебе на физмате за blowjob экзамены ставили, угадал? Нихрена России не светит с такими выпускниками :(

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

Можно учиться плавать с нарукавниками и надувным кругом, но вы не научитесь. А можно сбросить человека на глубину и он выплывет и после этого будет отлично плавать.

Или утонет. Но значит - не судьба?! Прэлестно ящетаю :)

Из этого вытекает: зачем мне тратить время на углубленное изучение паскаля (плавание с кругом), если потом все равно нужно будет учиться держаться на воде(другие языки).
KrasnoGlazik

Ну да - тебе в этом утонуть бояться не приходится. Г0вн0 - не тонет :)

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

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

Нет конечно! Только 99 тыс ... :)

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

Собери вот это пожайлуста, ___ОЧЧЧЕНЬ___ нужная штука, если сможешь я на тебе женюсь! Не шутка! https://github.com/torvalds/linux.git

Ждём ...

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

студией

Ага, это той-то у которой компилятор в C++ до сих пор не умеет?
slovazap

А __С__ - __уже__ не умеет! Офигенный струниментЪ (С) :-)

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

Можешь по программе Столярова попробовать ... Там с паскаля начинают, но если особо в тонкости именно паскаля не вдаётся.

Ну как не вдается. Там несколько глав и соответствено немало страниц посвящено только шероховатостям теминального IO для конкретного FreePascal'я. Особености которого смело забываюся при переходе к асму и С:( Он как бы заранее стелит соломку и те кто не осилят магию С. Могут смело оставатся на уровне Паскаля :)

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

В любом случае можно написать биндинг самостоятельно. Создать универсальную библиотеку-биндинг к GTK+ сложно

Гораздо дешевле подхватить забытый биндинг/url] к iup. Которые собствено и предназначены для человеко-ориетированого написания кросплатформеного UI.

Однако, сделать биндинг для небольшого подмножества, использущегося в конкретной программе,

Применительно к gtk для маленького подмножество гораздо проще дергать gobject-ы через (ql)cl-gobject-introspection. Как бонус станет доступно куча библиотек основаных на glib вплоть до вебкита и pdf-парсера/отображателя.

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

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

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

Кокой ты грозный :D

SDL - параши там нет и не будет - в системе без зоопарка gfx тулкитов эта хрень не нужна. Ровно как и остального зоопарка костыльной херни из линукса.

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

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

Ты бы лучше на hh.ru сходил - посмотрел тренды какие сейчас - фронт/жс(Реакт)--бек/ЖаваЕЕ(спринг)--бек/c#. ЖаваСЕ вообще только под ведройд сейчас спрос имеет, и то под иос/ведройд как-то народ начинает сползать на c#, ну и на РеактНатив (самые отбитые).

cnupm
()

на какой системе стоит начинать обучаться?

На той, которая больше всего нравится

с чего начать?

С того, который больше всех нравится

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

Неправильно рассматриваешь

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

Ты сейчас как, окей?) Пруф в студию

P.S. Решение на CMake с подключением проектов из git не принимается, т.к. так не делают в серьезных C++ проектах (ибо вероятность выстрела в ногу сильно увеличивается).

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

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

Ну это само - собой, в места _предназначенные_ для технических тем тебя не пусткают. LOR - не такое место, не тешь себя иллюзиями :)

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

под иос/ведройд как-то народ начинает сползать на c#

УПРЛС?

Ты? Видимо.
cnupm

А - просто после литра в одну рожу, ну да - это в корне меняет дело! :) Когда прорезвеешь прочти 100 раз: шарпы на мобилах сдохли вместе с теми мобилами, тормоз! :)

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

Скорее туда не пускают вас. Оттого такие злые на весь мир.

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

иначе мозг будет безвозвратно поврежден

мой мозг просто не способен постичь ООПщину

Слушайте, дети, Эдика, он вам насоветует :D

Вообще, мимоходом хочу заметить что самый невменяемый народ в этом разделе - это те кто начинал с C (и обычно им же закончил).

anonymous
()

советую java, т.к. есть выбор качественных опен-сорсных и бесплатных инструментов разработки, кроссплатформенно. Можно легко начать с netbeans ide. Под ц++ в виду особенностей языка, получить такое же качество инструментов, судя по всему, что перепробовал за последние 10 лет, невозможно, плюс время компиляции на более-менее серьёзном проекте измеряется от десятков минут, до часов даже на самом современном железе.

exhu
()

Итак, вот первый вопрос.

Где это делать правильнее и удобнее?

Linux ибо удобнее и широкий выбор инструментов

И второй вопрос.

Любой который тебе нравиться

каким ide вы пользуетесь и почему именно им?

На начальном уровне ненужно хватит любого текстового редактора gedit/mousepad более продвинутых vim/emacs/sublime или лёгких микроIDE geany/ тебе хватит gedit и консоли для сборки

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

А приколись тебе что бы носить новое платье надо было бы его сначала как минимум выучить :D Ну как бы на начальном этапе через месяц обучения уже можешь надевать его, но при повороте на право оно у тебя рассыпается на лоскутки потому что ты не учла что в коллбек внутреннего шва должен приходить код возврата текущего натяжения ткани для компенсации этого натяжения :D Вот она женская радость то была бы)

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

Gentoo + C + geany.

print({}+{}+{}).format(Gentoo, C, vim)

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

Потом приходят вот такое вот дурки с «физ-мат образованием» и не знают чем список от массива отличается.

Ахах, ну во-первых, список — это, например, хрень из питона.

Во-вторых, хранит значения, но. без key=val. Это просто список, который делает то же самое, что и массив, но иначе.

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

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

C++

Не.

Java

Да.

Python

Не.

Си

Да.

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

Тебе никто не мешает параллельно тыкать несколько языков. Думать про востребованность _языков_ вообще не надо. Они все не востребованы. Нужны знания из предметной области.

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

Даже с малейшим бекграундом в любом языке ты будешь понимать, какая c++ помойка из кучи плохо связных концепций. Очень сложно в нем сходу разобраться, и даже hello world написать идиоматично.

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

Опять же, зачастую им неважно на чем ты пишешь, они в основном только пишут хотелки непосредственно к функционалу программы.

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

Kuzy ★★★
()

«Пишите код с использованием языка, а не на языке».

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