• Как лучше стать успешным программистом?

    У вас отношение примерно такое: "меня никто не учит и я поэтому не могу стать программистом". Вас вообще никто, никогда и ничему не научит, потому что научить невозможно, возможно научиться. Займитесь программированием сами - изучайте какой-нибудь простой язык (о выборе первого языка на Тостере много вопросов и толковых обоснованных ответов, ищите). Действуйте.

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

    Подытоживая: учитесь в вузе, не ленитесь, программирование изучайте самостоятельно. И английский тоже - это позволит проще найти работу и вообще сильно облегчит жизнь.
    Ответ написан
    8 комментариев
  • Каков план личностного развития Wolfram программиста с нуля?

    @OsipovRoman
    Думаю, будет полезно habrahabr.ru/post/244451
    Ответ написан
    Комментировать
  • Когда начинать пользоваться arch linux?

    Meehalkoff
    @Meehalkoff
    В голове вашей должно что то щелкнуть. Если вы вдруг спросите как распознать этот щелчок среди прочего щелкающего хлама, то чтож... вот вам ответ:
    В очередной раз переустанавливая убунту вы замечаете, что "зае**л" этот отчет об ошибке при каждой загрузке системы.
    Вы долго привыкали к apt-get, а тут не понятный yum или как его там.
    Вам очень хочется, чтобы все было действительно просто:
    пример установки арча.
    1. подготовить жесткий диск.
    2. установить базовую систему.
    3. установить графическую систему.
    4. установить то, что действительно необходимо.
    5. не устанавливать не нужный хлам.
    Ответ написан
    Комментировать
  • На каком уровне нужно уже уметь программировать, поступая на "программную инженерию" в ВУЗе?

    barmaley_exe
    @barmaley_exe
    Чем больше алгоритмов — тем лучше. Возьмите какую-нибудь книжку вроде Алгоритмы. Дасгупта, Пападимитриу, Вазирани, Структуры данных и алгоритмы. Ахо, Хопкрофт, Ульман ну или Алгоритмы: построение и анализ. Кормен, Лейзерстон....

    Но книжки читать не так полезно, как применять это на практике. Решайте задачи на acmp.ru, timus, spoj, посмотрите на соревнования на codeforces.ru.

    На ЯП я бы особого внимания не обращал — важней получить хорошую алгоритмическую базу, а разобраться во всём остальном потом можно будет за пару недель.
    Ответ написан
    Комментировать
  • Что представляет собой тестирование ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вообще вики можно для начала, а потом уже углубляться в литературу. Вот вам кратенькое описание, цель которого больше предоставить ключевые слова для поиска.

    Модульные, они же юнит тесты, предназначены для тестирования отдельных модулей/классов. Суть их в том, что мы тестируем поведение только одного класса за раз. Если класс ссылается на инстансы других классов - мы их мокаем. То есть подсовываем им фэйковый класс, который имеет тот же интерфейс, но внутри не реализациа методов, а проверка, вызывали ли метод, с каким аргументами, сколько раз вызывали и т.д. Так же методы мока могут возвращать стабы (заглушки), какие-то захардкоженные под какой-то кейс данные. То есть если мы пишем класс по работе с базой данных, сокет-сервер и т.д., нам стоит соединение с базой, сокеты и т.д. оборачивать в классы, что бы можно было потом подменить на моки это добро. Если у вас в юнит тестах идет реальная работа с файловой системой или что-либо в этом духе, то это уже попахивает интеграционными тестами. Подробнее можно почитать в документации к phpunit. Так же есть такая методология разработки как TDD, советую почитать "Экстримальное программирование" Кента Бэка в этом ключе.

    Сразу хочу отметить что юнит тесты это хорошо, но вот только рядовой разработчик на PHP редко пишет что-то, что стоит покрывать юнит тестами. Времени на их поддержку нужно не мало, а требования у заказчиков частенько меняются. В итоге тесты начинают комментить и толку от них становится ноль. А вот если вы пишите компонент/библиотеку, то тут юнит тесты обязательны (ну... не то что бы, но желательны). Так что я бы на вашем месте сконцентрировал внимание на первом этапе на интеграционных и приемочных тестах.

    Интеграционное тестирование - тестирование нескольких модулей в связке. То есть мы тестируем наш компонент или его самодостаточный кусок в реальных условиях. Если этот компонент для работы с файлами - разрешаем ему доступ к файлам. Если база данных - то даем реальное соединение с базой. А можем что-то и замокать. Это как говорится, зависит от задачи. Скажем обращение к сторонним апишкам стоит мокать и стабить. Главная цель этих тестов, удостовериться что модули вместе работают хорошо. Особенно важно это когда модули пишут разные люди.

    Функциональное тестирование - это тестирования всего приложения в сборе. Если это REST API, то у нас через curl дергаются реальные методы, отправляются более менее реальные запросы и валидируются ответы. Если web-страничка, то это UI тесты с силениумом/phantom.js/zombi.js или, если нам не нужно еще и js тестить, просто curl + какой виртуальный браузер на том же php. Вообще по хорошему функциональные тесты не допускают никаких моков и т.д. но опять же если очень хочется то можно (опять же обращение к сторонним сервисам, контроля за которыми у нас нету).

    Но реалии таковы, что UI тестами покрывать проект не слишком удобно. Вопервых UI может меняться, а поддерживать их так же нужно. Во вторых это скучно. В третьих тесты могут просто падать... вот взяли и упали. И потом начинается, так, тесты опять упали... что там упало? А, не страшно, можно релизить. Так же на больших проектах UI тесты отрабатывают долго, очень долго, некоторых их просто ночью гоняют. Толку от тестов при таком подходе не слишком много, ибо разработчику стоит знать о том что что-то сломалось как можно быстрее. А так он приходит, видит что тесты опять красные, чинит эти красные тесты, и запускает... ждет... проходит пол часа к примеру, и где-то в другом месте отвалилось... Короче сами понимаете.

    Приемочное тестирование - по сути те же функциональные тесты, но подаются в контексте фича-спеков. Если вы работали когда-нибудь с QA отделом, то возможно слышали про такие штуки как acceptance criteria. То есть это тот чек лист, который должен проверить тестировщик что бы удостовериться что все хорошо. На основе этого чек листа можно написать функциональные тесты. Так же есть инструменты вроде Cucumber/Behat, которые позволяют писать спецификации в виде стэпов. В этом случае спецификации для этих инструментов могут писать QA а вы просто имплементите для них степы. То есть уменьшается прослойка между "acceptance criteria" и готовыми к выполнению тестов. Более того, стэпы можно реюзать, комбинировать, масса стэпов есть готовых, вам же необходимо только предоставить стэпы подготвалливающие систему (загрузка/генерация фикстур и т.д.). Короче лепота и удобно. Но медленнее интеграционных, зато не такие жесткие как функциональные, за счет этого их проще поддерживать. QA пишут спеку, реализуем тесты под эту спеку, пишем код под тесты, тесты зеленые - функционал готов.

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

    Ну и опять же, есть такая вещь как здравый смысл. Некоторые вещи скажем можно вообще забить и не покрывать тестами, некоторые стоит покрыть. Некоторые не полностью, некоторые с как можно большим покрытием.... Скажем тестить UI (именно как выглядит, где какой элемент) вообще бессмысленно. На это нужно куча ресурсов. Хотя может и есть проекты где это оправдано.

    Короче почитайте про TDD и ATDD (можно и BDD затронуть, но тут не только от программиста зависит, менеджеры, заказчик или продукт-оунер тоже должны быть вовлечены, по сути этот подход хорошо работает в рамках продукта какого-то, на фрилансе и в аутсорсе редко можно встретить) , Continious Integration и Continious Delivery.
    Ответ написан
    Комментировать
  • Как сделать перебор всех возможных комбинаций из символов?

    Напрашивается вариант представить результирующие строки записями в N-ричной системе счисления, где заданные буквы есть цифры от 0 до N-1, тогда задача сводится к выводу однозначных чисел от 0 до N-1, двузначных от 0 до N²-1, трёхзначных от 0 до N³-1. Запись в N-ричной системе легко получить, используя остаток от деления и деление.

    #include <vector>
    
    std::string gen(std::vector<char> alphabet, std::size_t idx, std::size_t digits)
    {
    	std::string ret(digits, alphabet[0]);
    
    	std::size_t alphas = alphabet.size();
    	while (digits--)
    	{
    		ret[digits] = alphabet[idx % alphas];
    		idx /= alphas;
    	}
    	return ret;
    }
    
    void gen_and_out(std::size_t n, std::vector<char> alphabet)
    {
    	std::size_t numbers = 1;
    	std::size_t alphas = alphabet.size();
    	for (std::size_t i = 0; i < n; ++i)
    	{
    		numbers *= alphas; // на каждом шаге чисел в alphas раз больше
    		for (std::size_t cur = 0; cur < numbers; ++cur)
    		{
    			std::cout << gen(alphabet, cur, i + 1) << std::endl;
    		}
    	}
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	gen_and_out(3, std::vector<char>({ 'a', 'b', 'c'}));
    }


    Второй вариант - это представить эти строки как запись числа в особой системе счисления без нуля - с цифрами от 1 до N. В этом случае легко преобразовать такую запись в число - ∑aᵢ×Nⁱ, а вот обратное преобразование должно учитывать, что у нас нет нуля, тогда если остаток получился равным нулю, цифру нужно взять N.
    В отличие от первого варианта, здесь нет отдельных циклов для однозначной, двузначной и трёхзначных записей, так как результаты идут подряд, за "c" следует "aa", за "cc" - "aaa", и так далее.

    #include <vector>
    
    std::string gen(std::vector<char> alphabet, std::size_t idx)
    {
    	std::vector<char> ret;
    
    	std::size_t alphas = alphabet.size();
    
    	while (idx)
    	{
    		std::size_t cur = idx % alphas;
    		if (!cur) // нет нуля
    			cur = alphas;
    		ret.push_back(alphabet[cur - 1]);
    		idx = (idx - cur) / alphas;
    	}
    
    	return std::string(ret.rbegin(), ret.rend());
    }
    
    void gen_and_out(std::size_t n, std::vector<char> alphabet)
    {
    	std::size_t numbers = 1;
    	std::size_t alphas = alphabet.size();
    	for (std::size_t i = 0; i < n; ++i)
    	{
    		numbers *= alphas;
    		numbers += 1;
    	}
    	for (std::size_t i = 1; i < numbers; ++i)
    		std::cout << gen(alphabet, i) << std::endl;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	gen_and_out(3, std::vector<char>({ 'a', 'b', 'c' }));
    }


    На закуску, как та же задача решается на Haskell:
    gen alphas n = concatMap (`replicateM` alphas) [1..n]
    main = mapM_ putStrLn $ gen "abc" 3
    Ответ написан
    Комментировать
  • Java и удаленная работа (фуллтайм) - порог вхождения?

    Kaigorodov
    @Kaigorodov
    Инженер, математик, мечтатель
    Очень хороший вопрос.
    Мой опыт: java -- это в основном enterprize. Поэтому фриланса на нём меньше, часто сидят в офисе.
    Выбор попытать делать удалённо долгосрочно большие проекты на java -- это очень правильно. Я сейчас на такой работе, это кайф. Скорее всего лучше web-проект, а не swing.

    Что надо знать: java core, collections, threads, servlets.
    А вот spring, jsp -- они не на всех проектах и мне лично не очень нравятся. А технологии которые мне не нравятся со временем умирают )))

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

    Я вообще не знал java, взял задание, мне скопировали на диск jdk, javadocs. И сделал за 3 дня. Это первая работа.
    Даже если задание затянешь, всё равно доделай. Это уже можно показывать его другим. Также это база, которую можешь улучшать. Если ещё чего интересно, стучись в личку.
    Ответ написан
    3 комментария
  • Чем отличается разработчик C++ под Linux от разработчика под Windows?

    icelaba
    @icelaba
    Знаю и умею всё
    Просто начните программировать под Linux :-) Если вы привыкли к оболочкам типа MS Visual Studio то у вас первое время проблемы будут не с языком :-) а с поиском адекватной замены или смены привычек.
    В свое время я под Windows 99% кода писал на far+colorer поэтому переход на linux а затем на mac я почти и не заметил.
    И да жизнь на c++ (в версиях до c++0x) без boost я тоже не представляю.
    Ответ написан
    1 комментарий
  • Каков план личностного развития C++ программиста с нуля?

    Если человек мне на собеседовании скажет, что с C++ он перешел на C#/Java, и теперь все его головные боли иссякли, я никогда не найму его на должность выше обычного девелопера. Это в лучшем случае середняк, который никогда не будет писать изящных архитектурных решений, без особой тяги к знаниями и без капельки фанатизма.

    Есть такая шутка:
    есть два типа людей: те, кто уже выучил C++, и те, кто его никогда не выучат.

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

    Крайне не советую начинать изучение языка со Страуструпа — уснете. По моему опыту, новичкам крайне полезно читать книгу Стивена Прата "Язык программирования C++. Лекции и упражнения". Во-первых, это именно книга по C++, а не древний учебник по C с классами. Во-вторых, там уделено внимание стандарту C++11, фишки которого отлично приходят на замену древнему C++ (о которых еще пишут в учебниках, да).

    STL — обязательна для изучения. Без нее C++ — обычный C с классами.

    Изучению также подлежат такие библиотеки, как boost (сначала, что в ней вообще есть, а потом — как написать определенные случаи), poco, ACE. Крайне рекомендую обратить внимание на Qt — это клад в мире C++.
    Если интересна 3d-графика, можно посмотреть свободный графический движок Ogre3d.

    Потом, хорошим C++-программистам хорошо бы знать структуры данных. Пожалуй, на этот вопрос лучше всего ответит Роберт Седжвик в своих книгах, либо соответствующих курсах на Coursera. Это важно, т.к. C++ обычно используется как язык для решения ресурсоемких задач, а не построения "табличной" бизнес-логики.

    И на финал — один из самых сложных современных языков для изучения.
    Ответ написан
    4 комментария
  • Хочу переучиться на C# или Java программиста. Что сейчас перспективно?

    DarkCoder
    @DarkCoder
    Изучишь С#/Java будешь 100% работать на супер-корпорацию, так как тут выбора точно нет. С веб технологиями всё таки можно либо что-то своё замутить или в какой-нить стартап податься.
    Ответ написан
    1 комментарий
  • Каков план личностного развития C++ программиста с нуля?

    afiskon
    @afiskon
    Си (в том числе Posix, WinAPI), затем элементы C++ - классы, наследование, шаблоны, затем STL - алгоритмы, контейнеры, по желанию - на ассемблере также можно пописать немного, в частности пригодится при отладке к примеру. Затем, когда надоест, забываете как страшный сон и пишите на Java.
    Ответ написан
    Комментировать
  • Хочу переучиться на C# или Java программиста. Что сейчас перспективно?

    @CAMOKPYT
    Стандартные проблемы интерпрайза, много легаси, много формальностей, много корпоративных норм. Запросто могут не взять на работу из-за отсутствия диплома или например из-за непрофильного образования, запросто может быть длительное собеседование с вопросами не по теме, просто потому что таковые корпоративные нормы. В качестве награды зарплата и карьерный рост, но не всегда профессиональный, шансы попасть на новый проект с интересными задачами точно такие же как и попасть на легаси. Конкретно по C# vs Java это просто выбор вендора, путь развития абсолютно одинаковый, изучение экосистемы Oracle\Microsoft и получение время от времени сертификатов. Смотрите что в вашем городе более развито, есть ли центры сертификации, то и выбирайте. Как по мне то C# более няшный.
    Ответ написан
    Комментировать
  • Хочу переучиться на C# или Java программиста. Что сейчас перспективно?

    ИМХО, работая на дядю - не заработаешь.
    Если хочется драйва - начинай свое.
    Ответ написан
    Комментировать
  • Почему не запускается код на Java?

    OLDJman
    @OLDJman
    Добрый день. Специально зарегестрировался, чтобы описать решение этой проблемы.
    Сам недели две назад тоже мучился и думал что я м.д.к, потому ничего не работает.

    Это не совсем так, поэтому читайте ниже.

    Суть проблемы:
    При повторение видео урока, а точнее действий в нем, желаемый результат не выводился. Конкретнее была написана программа вывода сообщения Hellow World в консоли WIndows
    А именно, компилированный ява файл, вызывался командой java ИМЯ.class, и выходила соответствующая ошибка: "could not find or load main class ИМЯ_класса"
    т
    Как решил:
    Вызывать надо уже ОТКОМПИЛИРОВАННЫЙ файл командой[b][i] java ИМЯ [/i][/b]И все!!! Тогда консоль нормально воспроизводит программу, если, разумеется, в ней нет ошибок.
    Возможно для гуру программирования, это очевидный ответ, и кажется что это норма, но я как 3-ью неделю изучающий яву, на второй день реально не понимал в чем суть проблемы. И так как несмотря на то что обучение идет трудно, мне было обидно и непонятно почему это не работает.

    Ниже распишу полный алгоритм работы с ява машиной на базовом уровне, может быть кому-то это поможет.

    1) Скачать JDK c оф сайта (ссылку давать не буду, это точно найти сможете)
    2) Установить скачанный пакет
    3) Подключить установленную ява машину к нашей системе ( у меня это Windows 7)
    а) зайти в папку с установленным пакетом и найти файл java.exe (у меня на Windows это было: C:\Program Files\Java\jdk1.8.0_05\bin\java.exe)
    _______обращаю внимание, что находить именно файл java.exe не обязательно, просто я сделал так=)
    б) Нажать на java.exe правой кнопкой мыши, выбрать "Свойства". В выскочевшем окошке, во вкладке "Общие", ищите строку "Расположение". Выделяйте и копируйте путь (у меня это C:\Program Files\Java\jdk1.8.0_05\bin)
    в) Открываем пуск, наводим мышку на "Мой компьютер", жмем правую кнопку мыши, жмем "Свойства".
    г) В открывшемся окне, слева, жмем кнопку "Дополнительный параметры системы"
    д) В отрывшемся окне "Свойства системы", во вкладке "Дополнительно" (она по умолчанию выделена/открыта), внизу ищем кнопку "Переменные среды". Жмем на нее
    е) В открывшемся окне "Переменные среды", в верхней его части, а именно "Переменная среды пользователя..." нажимаем кнопку создать
    ж) В открывшемся окне вводим имя переменной, у меня это Path (можно ли другую, я не знаю), а в поле "Значение" вводим наш скопированный путь (C:\Program Files\Java\jdk1.8.0_05\bin)
    д) Жмем "ОК", сохраняем все.
    4) Проверяем нашу ява машину
    а) Запускаем консоль (либо WIN + r => затем cmd и Enter либо Пуск => вводим в поиск над пуском cmd и жмем Enter)
    б) В открывшейся консоли, вводим java
    в) После этого должно появиться куча команд ява, служебная информция и прочее, если все нормально подключилось, если нет, то выдаст ошибку, вроде "Нет такой команды", или что-то похожее. Если что-то не так, делай действия выше по новой.
    5)Если все ок, идем дальше. Создаем нашу простую программу на java.
    6)Открываем блокнот, и пишем там код ниже:
    [code=java]public class Hellow
    {
    public static void main(String[] args)
    {
    System.out.println("Hellow World!");

    }
    }
    [/code]
    Обращаю внимание, что тут частые ошибки, это не написан метод "main", и "println" ошибочно написано. Внимательно проверьте что напечатали сами. Если вы абсолютный новичек, то прежде чем будете понимать что происходит, должно пройти время, поэтому не умничайте, и проверяйте вплоть до каждой запятой.
    7) Сохраняем наш файл. Вот тут обратите внимание на деталь: "В строке public class Hellow, слово Hellow, это имя класса, оно по сути, может быть почти любым, но очень важно, чтобы это имя совпадало с именем вашего файла, что вы сохраняете, причем если у вас он с большой буквы, значит и имя файла должно быть с большой. Сегодня я выяснил что в java вообще принято давать имена классов с большой буквы, так что не ленитесь, пишите с большой, но с маленькой, тоже не будет ошибкой, главное сохранить правило, какое имя класса, такое и имя файла.
    Сохранять надо с расширением .java
    В итоге, в нашем примере нужно сохранить файл в таком виде Hellow.java (вроде бы есть исключения, типо можно обозвать файл как хочу, но я не уверен, увы, но пока этого не знаю, так что делайте как выше написано, потом если узанете правду, напишите мне, благодарен буду)
    8) На данном этапе, мы просто создали файл, который может откомпилировать программа, вторая ошибка, это желать сразу открыть этот файл и исполнить его. Деталей я не знаю, но суть в том, что современные Операционки и процессоры, не умеют это делать, не знаю почему, вроде что то там с процессом производства компьютеров, они вроде 4-битные, или наоброт не 4 битные, короче этот код просто так не запустить, его нужно откомпилировать, перевести в машинный язык, который можно запускать, для этого идем к след шагу
    9)Запускаем консоль, в ней переходим в папку с нашим файлом Hellow.java
    Обращаю внимание, так как я полный новичек, то как переходить в консоли, тоже понятия не имел, на всякий случай распишу минимум, который нужно знать
    Чтобы зайти в каталог, нужно ввести команду cd ИМЯ_каталога. Например, нам нужно зайти в каталог/папку Desktop , вводим cd desktop. Разумеется, зайти мы туда сможем, только если эта папка находимся в том месте, где мы есть. Текущее местоположение отображается слева от вводимой команды в виде C:\Program Files\
    Чтобы вернуться в корневую папку диска C нужно ввести cd \
    Как-то можно подыматься на каталог выше, и прочие действия, но тут уже гуглите, у меня задача другая.
    Команда dir показывает список всех папок в данном каталоге/папке
    Если вы знаете точный путь к каталогу, можно из любого месте прописать полный путь в виде C:\Program Files\Java\... и вы туда попадете. В конце обязательно ставте \, а в начале диск C например. Иначе не сможете зайти.
    Команад help выводит вроде базовый список возможных команд

    Итого, алгоритм действий для попадания в нашу папку, где лежит файл Hellow.java
    ввести cd \
    потом dir
    прочитать что там есть, зайти в нужную папку командой cd ...
    снова dir
    и так далее
    Разумеется нужно понимать самому, где находиться твой файл, например, путь для файла, сохраненного на рабочем столе будет таким c:\users\ИМЯПОЛЬЗОВАТЕЛЯ\desktop\
    10) Теперь нам нужно откомпилировать файл Hellow.java. Для этого в консоли пишем javac Hellow.java
    Если все ок, через пару секунд снова загорится поле ввода команды.
    Если выскочила ошибка, как правило это какой либо косяк на этапе компиляции, читайте что там написано, там всегда пишут в чем была ошибка. Чаще всего это косяк в коде. Заходите в ваш файл и проверяйте внимательно строки. Чем чаще будете читать ошибки, тем быстрее научитесь их распозновать, Знание английского в 100500 раз облегчит работу.
    11) Когда файл откомпилировался, он сохраняется в той же папке, что и основной (Hellow.java), принимая имя, вроде бы класса, это детали, я их увы, не знаю, но расширение станет уже .class В нашем случае это будет файл Hellow.class
    12) Вот только теперь можно запускать этот файл, для проверки, что он у нас есть в папке, где мы находимся, в консоли вводим команду dir
    видим наш файл, и вводим команду java Hellow
    Причем обращаю внимание, не java Hellow.class , а именно java Hellow. Так как первый вариант выдаст ошибку, уж почему, извините, я не знаю.

    13) в консоли, на новой строке, выскочит сообщение Hellow World!
    Все.

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

    Спасибо за внимание и заранее извините за ошибки. Если когда-нибудь надо будет, может быть я исправлю все недочеты своей короткой статьи, а пока держите, как есть.
    Удачи в программировании!
    Ответ написан
    10 комментариев
  • Java и удаленная работа (фуллтайм) - порог вхождения?

    alexeygrigorev
    @alexeygrigorev
    Переворачиватель пингвинов
    Для начала нужно очень хорошо знать Java Core (самое главное - коллекции) и неплохо знать Spring. Так же хорошо бы знать какой-нибудь web-фреймворк типа Spring MVC, знать, что такое JSP. Плюс - знание Hibernate. С таким набором знаний можно быть уверенным, что найдете удаленную работу.

    Так же важно знание английского хотя бы на уровне B2
    Ответ написан
    Комментировать
  • Подкиньте пару хороших книг по Qt (С++)

    EXL
    @EXL
    Энтузиаст
    1. Бланшет, Саммерфилд - Qt4 Программирование GUI на С++. 2ed. - 2008
    2. Шлее Макс - Профессиональное программирование на C++. +CD. Qt 4.8. (В подлиннике) - 2012
    3. Марк Саммерфилд - Qt Профессиональное программирование (High tech) - 2011
    4. Андрей Боровский - Qt4.7+. Практическое программирование на C++ - 2012
    5. Юрий Земсков - Qt4 на примерах

    Первая книга от создателей Qt, в первых главах рассмотрено создание приложения для работы с таблицами (этакий мини Excel). Так что в прямом смысле за день можно разобраться во всех тонкостях создания подобных приложений.
    Вторая книга от известного в Qt-сообществе программиста, очень подробный и толстый справочник по виджетам, их описание и примеры использования. Имеется несколько глав по JavaScript/QML/QtQuick. Однозначный Must Have.
    Третья книга от одного из программистов, разрабатывающих Qt. В ней рассказано о профессиональной разработке приложений. В чем-то является продолжением первой книги.
    Четвертая книга от отечественного программиста, рассмотрены в основном принципы разработки сложных приложений. Отдельный разделы посвящены программированию трехмерной и интерактивной графики, баз данных, многопоточных приложений и созданию собственных виджетов.
    Пятая книга на мой взгляд уже устарела. Её вполне заменяет Макс Шлее.

    Это все книги по Qt 4.X.X на русском языке, известные мне (не считая редакций). Если кто-то знает ещё, пожалуйста отпишитесь.

    По Qt 5 книг пока нету. Макс Шлее сказал, что начнет работу над новой книгой с выхода версии Qt 5.2. По поводу книг для Qt 5 см. ответ ниже. Но не стоит забывать, что у Qt документация одна из самых лучших и вполне способна заменить книгу. Поэтому настоятельно рекомендую пользоваться Qt Assistant при возникновении затруднений.

    По C++ рекомендую конечно классику:
    Прата С. - Язык программирования С++. Лекции и упражнения - 2011
    Ответ написан
    1 комментарий
  • Как упорядочить (систематизировать) знания в голове?

    palexisru
    @palexisru
    могу предложить девятнадцатиуровневый вариант OSI habrahabr.ru/post/203770

    сейчас раскладываю в нее свою "кашу", с попыткой разработки идей языка программирования.
    Ответ написан
    Комментировать
  • Как упорядочить (систематизировать) знания в голове?

    afiskon
    @afiskon
    Попробуйте завести блог. Мне помогло. Вот кое-какие рекомендации по блогингу от меня: eax.me/blogging-part-1
    Ответ написан
    Комментировать
  • Насколько хорошо стоит изучить C++, чтобы легче было перейти к изучению Java?

    @endemic
    Если хотите в будущем заниматься исключительно Java, то учите С++ в объеме классы + наследование + полиморфизм. Особое внимание уделите указателям. Qt не советую, потому что оно к джаве никаким боком. Лучше это время потратьте на изучение STL и шаблонов.
    Ответ написан
    4 комментария
  • Разработка электроники VS веб-разработка: куда податься?

    @Mirn
    Сам занимаюсь программированием для железок и для ПК в том числе.
    Работаю в фирме а так же делаю свои "умные" часы в свободное от работы время. И вижу чего добились другие так же, и вижу что большинство успехов связано либо с железом либо с совмещением железа и софта. Никому не нужен пятсотпервый ещё один "классный архиватор", но все хотят какие нибудь качественные и надёжные гаджеты, предметы, и просто порой качественную мебель которая не пахнет и не токсична (для детей). Все устали от китая, очень устали, не везде есть икея.

    Если делать свой бизнес то по-моему только связанный с товаром или электроникой.
    Для этого даже не нужно сильно дорогое оборудование, на работе стоит из дорого осциллограф лекрой за 300к, и отладки для ПЛИС за 30к. Но можно вполне спокойно найти usb осцилл за 20к уже приличный, остальное на 10к потянет.

    У электроники ещё есть плюсы:
    1. Однозначно проще веба
    2. Реально сделать что-то самому.
    3. Реально растиражирвать и получить прибыль быстро, и вложить её в развитие.
    4. Среда в которой крутится твой код не поменяется если сам не сменишь МК/ПЛИС/Распебри/Ардуину. Поэтому сойдёт даже быдлокод - главное чтоб у клиента работало,
    5. Поэтому можно быстрее проверить чем веб.

    Двоём даже можно сделать такое:
    https://www.youtube.com/watch?v=gnjd8yujyKE
    https://www.youtube.com/watch?v=J6XkECIYV3I
    Мы сделали за три года, тратя в среднем 2 часа в день.

    PS. "-малое количество компаний, отрасль слабо развивается" - это плюс, ниша не занята, дерзай! Делай!
    Ответ написан
    1 комментарий