Java як перша мова програмування

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

Відповідь дуже сильно залежить від того, які цілі ви перед собою ставите. Я тут прогледів ваш топік "Стати програмістом в 27 років", але там цілі все одно розпливчасті. Я розумію, це не ваша вина: пратіческі неможливо точно сформулювати, чого саме ти хочеш добитися в питанні, про яке маєш лише саме загальне уявлення. Тому я зараз спробую відповісти на ваше запитання саме з цих позицій - природно, в міру виключно свого суб'єктивного сприйняття.

Найголовніше, що вас цікавить, це, звичайно, коли ви зможете почати заробляти гроші своїм программізмом, і, зрозуміло, в яких розмірах.

Найреальніший сценарій видається приблизно так: посада програміста в якійсь конторі радянського типу, типу там на трикотажній фабриці або в тресті комунального господарства, в маленькому відділі автоматизації з колективом з кількох не самих просунутих спеців. Господарство - складські завдання, бухоблік, дрібні самописние програми. Все це треба буде в міру сил підтримувати і по можливості розвивати. Інструментарій - найчастіше повний зоопарк: FoxPro, Access, C, VB, Delphi - в загальному, може виявитися все що завгодно.

Це не самий завидний сценарій, але, схоже, найшвидший з реальних. Якщо це влаштовує, я б став вчити в першу чергу Access і VB.

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

Інша корисна сторона такої стратегії - в тому, що при цьому досить рано стикнешся зі специфікою практичного програмування і супроводу: відносини з замовником, з користувачами, технічні питання, робота мережі, серверів та ін. - речі, про які на курсах тобі навряд чи розкажуть .

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

В цьому випадку треба відразу для себе вирішити: або це буде Java, або .Net. Третього не дано (насправді є ще сфера графіки / мультимедіа / ігор - там знадобиться C / C ++, але це в нашій ситуації неправдоподібний сценарій).

Так ось, вибираючи між Java і .Net. Скажу відразу, про .Net практично нічого не знаю, крім того, що це платформа Microsoft. Для мене, однак, цього достатньо, щоб відразу поставити на ній хрест з міркувань особистої огиди. Але я допускаю, що не всі в цьому питанні такі педантичні, так що вирішувати вам.

Думаю, середа .Net повинна бути простіше і більш дружньо для вивчення і розробки.

У будь-якому випадку, Java як перша мова програмування нікому б не радив: там за деревами легко втратити ліс.

Самим ідеальним, на мій погляд, було б почати з мови C. Це заклало б базу і розуміння принципів роботи програм на все життя. Але в ситуації, коли сильно хочеться їсти, це може бути не самою відповідною стратегією.

Ось такі ось мої п'ять копійок

Самим ідеальним, на мій погляд, було б почати з мови C. Це заклало б базу і розуміння принципів роботи програм на все життя. Але в ситуації, коли сильно хочеться їсти, це може бути не самою відповідною стратегією.


Щодо закладеної бази повністю згоден. Тільки у мене виникає таке питання - а чи потрібно розуміння цих принципів прикладного програмісту, якими є 90%? Покладемо я їх знаю, але не впевнений, що мені це сильно допомагає в програмуванні на Java. Якщо займаєшся системним програмуванням або речами, близькими до системних, такі знання безсумнівно потрібні. Та й писати тоді доведеться швидше за все якраз на C. А написати прикладну систему обліку товарів можна і без них.

Ще одне зауваження. Поставте себе на місце людини, яка жодного разу програмуванням не займався. Що йому буде простіше - вивчити процедурний C або об'єктно-орієнтовану Java, де він буде оперувати з об'єктами, їх властивостями і поведінкою? Я не знаю точної відповіді на це питання. Однак, ближче все-таки до другого. Об'єктно-орієнтовані мови програмування ближче до звичайної розумової діяльності людини, имхо буде простіше описати безліч класів, які відповідають предметної області програми, ніж переводити ці терміни в мову, близьку машинного.

Зауваження щодо великого API вірно, але ж не обов'язково вивчати все відразу. Поступово, у міру необхідності. До врешті-решт, широту стандартної бібліотеки Java - це не недолік, а гідність. Підмножина, яке приблизно відповідає стандартній бібліотеці того ж C, вивчити можна не менше швидко.

Схожі статті