Відповідаючи на питання «чому»: C — низькорівнева мова, де операції проходять на машинному рівні. Якщо починати з Java на її віртуальній машині, Ви не будете обізнані у таких вимогливих до знання «матчастини» (низького рівня) сферах, як, наприклад, оптимізація.
До речі, для вивчення Java і алгоритмів можу порадити Robocode (robocode.sourceforge.net/) Дуже захоплююче і гарна практика алгоритмізації. Але починати все одно краще з Pascal (можна C (не C++ для початку), але краще почати з мови з сильною типізацією, як Pascal).
Android — дуже специфічна область. Якщо вона не викликає безумовного захоплення, тоді немає взагалі ніякого сенсу починати з неї. Почитайте тему www.developers.org.ua/...ntu-kak-nachat
Ничего не могу сказать про проекты на дизайн на weblancer, но за последний год проекты на веб-программирование сильно поднялись в качестве и даже количестве. При том что и раньше было не плохо.
На англоязычных биржах терпимо относятся к немного корявому английскому, поскольку это обычно не родной язык исполнителей. Но там есть тесты на знание английского языка, и вроде бы я видел на odesk’е ограничение проекта по желанию заказчика до тех исполнителей, которые сдали тест на определенный уровень знания языка (не уверен, что то был odesk, давно это было).
Я начал с weblancer.net и всё ещё там.
Зарегистрировался на free-lance.ru, но проекты на вёрстку, веб-программирование и создание сайтов там были менее интересные, так что давно уже даже не смотрел.
Если с английским нормально, то есть смысл смотреть а англоязычные, например odesk.
Нехай автор резюме не сприймає негативно, вкажу помилки, які побачив (десь можу помилятись, мій рівень (за невеликим тестом) — lower intermediate, нехай мене виправлять і не б’ють ногами):
MySQL base — MySQL RDBMS (зазвичай просто MySQL)personnel — словник спочатку пропонує personnel, але я зазвичай бачу слово staff
Я впевнений, що є ще, але більшість з них вже не для мого рівня англійської.
Англійські лапки виглядають так: «" (на ДОУ дивно відображаються, це нижні та верхні подвійні лапки).
Можна вказати версії Друпалу, з якими є досвід
Adobe — краще уточнити, це Photoshop, Illustrator, Flash, Acrobat чи ще що.
«FTP clients» IMHO краще прибрати, це все одно що лінуксоїд написав би список утиліт командного рядка, якими і так ясно, що він користується (cp, mv, rm, etc.). Можна написати один конкретний, якщо він якийсь особливий.
What is «Coding and programming»?
Закінчувати рядки або крапкою, або крапкою з комою, або нічим (окрім окремих випадків), але в одному стилі.
Поддерживаю. По этой же причине лучше выбирать серверный дистрибутив, который будет использоваться. Основные варианты: Debian и CentOS. Лично я использую Debian (я не Java-разработчик, но, думаю, это сути не меняет). Использую ветку testing для более свежего софта, при желании можно на ней поддерживать версии пакетов-зависимостей разрабатываемых продуктов такие же, как в ветке stable (или наоборот использовать stable и поставить из бек-портов нужный софт посвежее).
OK.
Python та Ruby набирають попит, але зараз немає написаних на них аналогів до популярних конструкторів з готових до використання компонентів, на зразок Drupal та Joomla, тільки фреймворки для власного коду.
Це виправлення було варте дев’яти постів?
Я багато чим займаюсь, в тому числі і «сайтами за 300 грн.» Це не важливо, йдеться про FAQ, і я намагався розписати ситуацію для новачків. Ви сказали, що я помилився, але мені починає здаватись, що Ви у такий спосіб просто нав’язуєте свою термінологію. Пояснили б відразу, що Ви вкладаєте в поняття «конструктор» сенс «конструктор з напилком» і ми б не втрачали даремно час і записи у БД цього сайту.
Дякую!
Якось я його у DuckDuckGo пропустив, тупію.
Ага. Саме це і потрібно (не мені, а взагалі, для деяких категорій проектів).
Ніколи не мав сумнівів у тому, що Rails+gems вирішують (проблеми), але не знав, що є достатня кількість gems, які можна об’єднати без програмування. Ви ж про це вели мову?
Не можу знайти, Ви не могли б дати посилання, будь ласка?
Кожен поважаючий себе пхпшник відмовиться від пхп, але не важливо. Які все ж таки системи-конструктори зі швидким стартом, а не парою тижнів куріння архітектури? Специфічні системи, які можна використовувати, я бачив, але я писав про конструктори. Це не для флейму, справжня професійна цікавість. Чи конструктор — це єресь?
Це добре, якщо я написав єресь. Може підкажете щось рівня Drupal: реальні типові проекти можна наклацати у веб-інтерфейсі?
> Кстати, хоть пару зраз руками собрать и обновить ядро тоже помогает в достижении просветления ;)
Може, не знаю. Я збирав років п’ять тому з необхідності, конфігурив самостійно. Не відчув, що мені це щось дало, хіба що очі трохи почервоніли від гордості. :-)
> Ну мне захотелось после нескольких лет.
Звідки куди? Якщо Убунту, то це просто глючний Дебіан. Мак — ОК, можу зрозуміти, але такі речі, як відсутність славнозвісного ШГ мені байдужі.
> То есть веб-деву не надо понимать, хоть базово, как настроить апач, или СУБД, или как организована ФС?
Треба, взагалі треба вміти налаштувати веб-сервер, я неправильно Вас зрозумів. Я вів мову про LFS-like чи kernel developer-like розуміння системи.
До речі, я люблю Дебіан за те, як там добре розподілені файли різних призначень. Порівнюю з Федорою, більше ні з чим особисто справи не мав.
Ну Ви порівняли Федору з Генту. Тоді вже Gentoo, Slackware, LFS. Хоча я б радив для початку менш радикальні: Дебіан, Федора, Арч — в залежності від особистих вподобань. А після року-двох на них точно не захочеться пересідати на Мак чи Убунту.
А взагалі розуміння «як воно працює» потрібно тільки системним програмістам. Решті потрібен зручний інструмент.
Непогана ідея написати FAQ, добре було б, якби за результатами цього обговорення хтось зібрав вікі. Вставлю свої копійки, трохи посперечаюсь.
> Ключевые слова: ООП, паттерны, рефакторинг, тесты.
Уточню: це ключові слова сучасних технологій і способів розробки (це не стосується патернів взагалі, але стосується конкретних патернів). Ключові слова програмування: алгоритми та стуктури даних (Д. Кнут). Що не означає, що перелічене не потрібно знати професійному програмісту, особливо поширені патерни та ООП.
> Если вы школьник, не ходите в институт тут, сразу получайте опыт работы.
“хо́дите”, а то дехто зрозумів як заклик до всіх не отримувати вищу освіту.
> Сколько часов работать?
Доки працєте продуктивно, якщо це творча робота. Робити перерви, особливо коли “не йде”. Найчастіше програмісти говорять, що працюють
> Виндовс или Мак?
Це як “десктоп чи ноутбук”. Якщо розроблювати під Мак або продукцію Еплу — Мак (вони інструменти випускають тільки для Mac OS X). Під вінду — вінда. Під сервери — серверна операційна система (Linux (CentOS, Debian) або FreeBSD). Веб-програмування — що зручніше (Debian GNU/Linux :-) ). А для ігор A-класу — вінда або ігрова консоль.
> Python, Ruby, PHP
PHP користується значно більшим попитом, має багато готових CMS, багато готового коду для копіпасту і вимагає менше знань для початку. Python та Ruby набирають попит, але готового конструктору з компонентів на них зараз не знайти, тільки фреймворки для власного коду. Але якщо саме фреймворк для чогось складнішого за сайти-візитки і потрібен — у PHP жодних переваг. Python до того ж часто застосовується поза веб-програмуванням.
> HTML/CSS
Цей напрямок (називається простою мовою “HTML-верстання”) користується попитом, але цим можна займатись і без програмування або з зовсім початковими знаннями JavaScript на рівні мавпи.
Яку мову вчити першою?
Якщо через короткий проміжок потрібно заробити на цьому якісь гроші — PHP. Швидко вчиться і користується попитом, хліб буде з маслом. Якщо є трохи часу на академічний підхід — Pascal. Бажано не Delphi і не FreePascal, тільки Borland Turbo Pascal і command-line interface. Раджу книгу Фаронова, можна з Turbo Pascal 7.0 (з підтримкою ООП), цю версію його книги вже радили вище. Це спрямовано на те, щоб відразу привчитись до хорошого стилю в усьому — інакше потім програмісти пишуть добре тільки тоді, коли за ними слідкують.
Далі по коментарям.
> > В мире пока что дефицит на программистов.> Я бы сказал “на хороших программистов”.
Навіть прийнятних програмістів. Часто бачу код неприйнятних.
> Из книг только основы, книги не успевают за новыми технологиями, читайте Хабр, ЛОР, гугл и прочие ресурсы
Зауважу, що правильні основи — це не початковий рівень, а скеля знань, на якій будуть стояти сучасні техніки. Але скелю за раз побудувати неможливо, звичайно, це заняття на все життя. В цей час і про сучасні технології забувати не можна. Це можна віддалено порівняти з теоретичними та практичними заняттями з математики у ВУЗах.
> Джоел пишет, что есть две абстракции, которые “ниасиливают” большинство людей со слабым абстрактным мышлением — это динамическое программирование (динамические структуры данных — стеки, очереди, списки) и рекурсия.
У нього це “покажчики (pointers) та рекурсія”. Це вже якийсь тест на професійну придатність, але якщо це зрозуміло, це може означати тільки потенціал стати хорошим програмістом. Зауважу, що рекурсія актуальна для всіх і завжди, іноді навіть з’являється несподівано для непідготовленого програміста при обробці подій.
Сорі за довгий пост, не чекав від себе.
Доброго дня!
Open Source знайти легко і є широкий вибір. Можна хаки до CMS або її модулів перетворювати на патчі, які можна відправити в мейнстрім і відкривати в багтрекері issue — мінімум часу на початок контакту з розробниками, задоволення від написання гарного коду. Можна стати мейнтейнером у власному дистрибутиві Лінуксу чи яка там у Вас ОС (якщо вона вільна, звичайно, інакше спочатку потрібно її змінити — у такому випадку це найцікавіше, чим можна зайнятись).
Безкоштовно виконувати проект, який розрахований на оплату, не раджу: замовник не зрозуміє Вашого небажання виконувати всі його божевільні забаганки. Можна зробити безкоштовно щось для неприбуткової організації. Такі проекти бувають зрідка на фріланс-біржах (я бачив на weblancer.net), у них є бюджет, але від нього можна відмовитись. Але це може бути через нахабного посередника або взагалі «розвод». До речі, якщо Ви не читали попередній дайджест: www.shouldiworkforfree.com
Різне: ігри для програмістів (можна просто розробити AI для якоїсь гри, але це складніше), эзотеричні мови програмування, функціональні мови програмування (з відповідними задачами), теорія автоматів, Кнут.
Ви знаєте, що філологи будь-якої мови теоретично вчать латину і, здається, давньогрецьку (більшість нічого потім не знає, як завжди)?
Я раджу Pascal як близьку до машинного рівня мову зі статичною сильною типізацією (щодо «сили» типізації Pascal можна сперечатись, я знаю), як простішу для навчання (з C легше прострелити собі ногу, правда?) А ще я раджу Паскаль як мову, з якої майже гарантовано доведеться мігрувати для першого ж не навчального проекту, а вивчення нових мов при правильному підході (тобто не починаючи писати новою мовою у стилі старої) я вважаю корисним для розвитку програміста. Але C (або asm якщо подужають) за можливістю я б радив вчити другою мовою, навіть якщо планувати потім писати не на C/C++/ObjectiveC.