Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save anonymous/0961297537b23de8252851d99dd71f5d to your computer and use it in GitHub Desktop.
Save anonymous/0961297537b23de8252851d99dd71f5d to your computer and use it in GitHub Desktop.
Как стать oracle программистом

Как стать oracle программистом


Как стать oracle программистом



Как стать сертифицированным программистом за один год, если у тебя работа и двое детей
Как стать хорошим web разработчиком?
Какую книжку по Oracle прочесть, чтобы получать около 3000$















Только полноправные пользователи могут оставлять комментарии. TM Feed Хабрахабр Geektimes Тостер Мой круг Фрилансим. Хабрахабр Публикации Пользователи Хабы Компании Песочница. Аркадия 38,43 Заказная разработка, IT-консалтинг. Как часто в начале пути мы смотрим на окружающих, которые уже давно шагают по только что выбранной нами тропе, и восхищаемся ими или завидуем тому, чего они достигли. В этот момент мы мечтаем о высотах, которых добьемся в будущем и строим планы о том, как будем достигать желаемого. Для тех, кто только вышел в наш интереснейший путь или уже бодро шагает по нему, статья даст ответы на некоторые часто задаваемые вопросы и откроет недостающие части карты, которые позволят быстрее и с большей пользой преодолеть первые отрезки нашего с вами увлекательного пути. Опытным путникам так же могут быть интересны некоторые заметки, которые дадут возможность посмотреть свежим взглядом на то, где они находятся сейчас и возможно позволят увидеть плохо изведанные части своего пути. Далее я постараюсь описать какими знаниями, умениями и навыками обладает хороший программист, и что нужно делать, что бы этого достичь. Предметная область Предметная область является самым главным в работе программиста. Возможно, я вас удивлю, но есть разные виды программистов, есть те, чья основная работа создавать программные продукты, но есть и такие, которые изучают определенную предметную область, а программирование является для них лишь одним из множества инструментов. Именно вторые дают ярко понять, что главным является предметная область. Типичный представитель первого вида, увидев код, представителя второго вида может ужаснуться отсутствию применения каких-либо паттернов, именованию переменных одной буквой или даже различного вида быдлокоду и посчитать, что коллега вовсе и не коллега, а оборотень, вооруженный мышкой и клавиатурой. Но правда такова, что для части программистов разработка качественного, легко поддерживаемого кода не является необходимостью, ведь у них другие задачи. Я вас, возможно, еще раз удивлю, но для программистов первой категории это тоже не является главной задачей. Для всех программистов главной задачей является решение проблем в рамках определенной предметной области. А качество кода, паттерны и т. Что такое предметная область в рамках данной статьи? Я бы разделил ее на две основные части: К примеру, коммерческая организация или физика, как наука. Программисты всегда работают в рамках производной предметной области. Суть в том, что если мы возьмем некую предметную область и посмотрим программные продукты, работающие с ней, то мы увидим, что они оперируют во многом схожими сущностями и позволяют выполнять схожие действия, но при этом могут иметь сильные отличия. Для простого примера давайте посмотрим на браузеры. Вроде предметная область идентична — отображать сайты. Вроде везде примерно все одинаково: Одни браузеры имеют пункты меню, которых другие не имеют, вторые не отображают то, что умеют отображать третьи, четвертые вообще полезны только для того, что бы скачать другой браузер. И программисты, создающие определенный браузер отлично знают именно его, но улучшают и меняют его часто с оглядкой на все остальные, то есть, изучая натуральную предметную область. Но так же, чтобы более качественно создавать и улучшать программные продукты, нужно хорошо знать натуральную предметную область. Существует один часто задаваемый вопрос: Лично я считаю, что программист обязан знать высшую математику, если она является частью предметной области, с которой программист планирует работать. Технологии Многие начинающие программисты задают один и тот же популярный вопрос: Суть проблемы в неправильности вопроса, потому что язык программирования является лишь средством выражения. Согласитесь, что если сравнить языки программирования с разговорными языками, то можно провести некую аналогию. К примеру, как художественное произведение может быть переведено с одного языка на другой и при этом не терять свою ценность и смысл, так и программное обеспечение может быть написано на разных языках и переписано с одного языка на другой. Хотя во втором случае не все так просто, но сейчас не об этом. Язык далеко не главное. А что тогда главное? По моему мнению, это технологии. Технология в данном случае это способ решения определенной задачи. Вот такое вот размытое понятие. Давайте немного разберемся в этой размытости и попробуем понять, почему эти технологии важнее, чем сам язык. Почему важно знать окружение в котором выполняется ваше ПО? Потому что во многих случаях это определяет то, как вы можете решить ту или иную задачу. Почему ОС это технология? ОС является технологией, потому что различные реализации ОС, позволяют решать одни и те же задачи, причем схожим образом. Изначально я, как и многие молодые специалисты познакомился именно с Windows. В дальнейшем, читая в интернете о том, что Linux это круто, Linux это совсем другой мир, я так и не осмелился с ним познакомиться, просто не надо было. Но время шло, и появились задачи, в рамках которых нужно было настроить VDS, на которой стоял Debian. Сначала у меня был шок. Подключившись через putty к виртуальной машине, я понял, что не знаю, что мне делать с этим черным окошком. Но немного погуглив в моем мозгу образовалась запись: Наверно адепты Linux сейчас плюнули в экран, или просто закрыли статью, но на самом деле для человека, который имел опыт использования CMD, эта запись в голове является очень важной. Просто в один момент вам становится понятно, что и как делать и что вообще можно в рамках данной технологии командная строка сделать. Ну, командная строка это самый минимум, на самом деле в операционных системах вообще мало чего уникального. Реализация разная, но суть одна. Поэтому давайте становимся лишь на одном совете начинающим: Это значительно расширит и укрепит ваши знания. Чем больше вы знаете конкретных реализаций определенной технологии, тем лучше вы будете понимать эту технологию. Desktop, Web и Mobile. Это довольно важное разделение, так как для каждой из этих платформ характерны подходящие только для нее технологии. Язык программирования, а точнее технологии с которыми он позволяет работать, напрямую связаны с платформой. Часто можно услышать словосочетание web-разработчик или mobile-разработчик, это определяет платформу и технологии, с которыми лучше всего знаком программист. К примеру, для web-разработчика основными технологиями будут: MySql, Oracle, SQL Server, PostgreSQL, SQLite и д. Отдельно стоит сказать о языке запросов к БД, который называется SQL. Помимо стандарта этого языка, который, как мне кажется, полностью не реализован ни в одной СУБД, существует множество диалектов, которые часто зависят от самой СУБД. Чаще всего БД имеют таблицы с колонками, типы колонок, индексы, внешние ключи и т. В зависимости от разработчика БД эти составляющие могут сильно отличаться от других. Отдельным пунктом нужно упомянуть про встроенные БД типа SQLite. Такие БД хранятся в файле и для них не нужно отдельное работающее приложение сервер , через которое необходимо обращаться к БД. Самым простым видом хранения информации являются файлы. Не будем сильно задерживаться на этом, ведь тема слишком обширная. Упомяну лишь самые основные форматы хранения данных в файлах, которые чаще всего используют программисты. Формат хранения данных подразумевает под собой определенную структуру хранения данных в файле. Основные форматы XML и JSON в них удобно хранить и передавать данные. Здесь очень важно понимать, что протоколы имеют уровни. К примеру, IP, TCP и HTTP являются протоколами трех разных уровней. Задача одних уровней организовывать передачу данных на уровне ПК-ПК, задача других передавать определенные запросы и формировать на них ответы. Лучше это объяснено в модели OSI и на картинке, а от себя лишь добавлю, что чаще всего программисты используют протоколы прикладного уровня. К примеру, один язык имеет возможность использовать технологию передачи данных, а другой нет. Следующим важным свойством языка является парадигма программирования, реализованная в нем. Одной из самых распространенных парадигм на данный момент является объектно-ориентированное программирование. Помимо ООП существует множество других парадигм, которые главным образом влияют на то, как будет реализована та или иная задача. То есть парадигма очень сильно влияет на язык, на то, как язык с помощью парадигмы выражает решение задачи. Часто языки реализуют несколько парадигм программирования. К примеру, на языке C можно создавать Desktop приложения, а так же можно писать Web-сайты и создавать приложения для Mobile. А к примеру PHP подходит только для создания Web-сайтов. Так как каждой платформе соответствуют свои технологии, которые необходимо изучать отдельно. Более высокого уровня понимания языков можно добиться изучением языков со схожими или различными парадигмами. Они позволяют разрабатывать продукты быстрее и качественнее. Программисты, работающие с определенным языком и определенной платформой, обязаны знать основные фреймворки и библиотеки. Фреймворки отличаются от библиотек, тем, что фреймворк выступает как основа приложения, а библиотека, как часть приложения. Библиотеки чаще всего предоставляют решение определенной проблемы, к примеру, библиотека для формирования отчетов или библиотека для ведения логов. А фреймворки в свою очередь предоставляют основу для создания приложений, к примеру. Для примера, если вы планируете разрабатывать приложения для Desktop на языке C , то вам придется ознакомиться с технологией реализации пользовательского интерфейса. На данный момент существуют две основные ее реализации это WinForms и более современная WPF, обе эти реализации являются часть. Если же вы планируете создавать сайты для Web на языке C , то существует две основных альтернативы, первая это WebForms, а вторая это MVC. При необходимости вести логи в языке C часто используют библиотеку log4net. А при создании сайтов и использовании языка JavaScript довольно часто используют библиотеку jQuery. Для того что бы это понять можно изучить вакансии или посмотреть приложения с исходным кодом, на предмет того, какие фреймворки и библиотеки чаще всего используются. Инструменты С одной стороны основные инструменты, которые используют программисты, тоже являются определенными технологиями. Но с другой стороны они довольно сильно отдалены от конечного продукта и практически не влияют на него, поэтому описаны отдельно. Но необходимо понимать, что уровень знакомства с инструментами разработки и с их количеством являются довольно важной составляющей профессиональной компетенции разработчика. С помощью данных систем вы можете узнать, кто и когда из пользователей системы поменял файл исходного кода. Вы можете сравнить две версии файла, даже если между ними существует еще несколько сотен версий. Вы можете вернуть версию своего файла к любой версии из всей истории версий. Эта система является очень удобной, так как на одном физическом ПК у вас может быть установлено несколько виртуальных машин. Это позволяет вам иметь несколько ОС на одном ПК. Позволяет испортить ОС на виртуальной машине и вам не придется долго переустанавливать ее. Для языков относящихся к. Для Java это будет IDEA, NetBeans или Eclipse. Так же большинство сред разработки поддерживают расширения и некоторые из них очень широко распространены. К примеру, для Visual Studio очень популярен Resharper. Так как среда разработки является основным инструментом, то рекомендуется изучить ее встроенные возможности. Здесь очень важно изучить средства навигации по коду и горячие клавиши, выполняющие основные задачи. Выводы о технологиях и инструментах В данном разделе мы познакомились с основными технологиями и инструментами, которые необходимо знать среднестатистическому программисту. Нужно понимать, что в данной статье не описаны технологии, которые напрямую относятся к разработке кода и повышению его качества. В данных технологиях, как и во всех других, самое главное это понимание какие задачи они решают. И уметь отвечать на вопрос — какая технология, и какая ее реализация решает ту или иную проблему лучше. В противном случае, без понимания этой сути, вы не сможете создавать качественные продукты. Так как ключевым условием для создания качественного продукта является правильно выбранные и верно примененные технологии. Добавить в закладки Метки лучше разделять запятой. Я бы на вашем месте изменил название, оно совсем не в кассу, некоторые моменты дискуссионны, многое режет глаз профи. Но знаете, что это, пожалуй лучший гайд, который стоит показывать мало знакомым с IT людям, который я видел. Просто, доступно, наглядно, компактно, да упрощенно, но новичкам и не нужно сложно. Я бы это на первом занятии в универе читал. Не понимаю, почему минусуют все же смените заголовок. Мне тоже не очень понятно почему минусуют, тем более, что нет каких либо комментариев, объясняющих это. Насчет заголовка согласен, подумаю на что поменять. Спасибо, убрал пока вступительную картинку. Надеюсь все же, что статью минусуют не за название и главную картинку, а за несогласие с точкой зрения автора, которое будет выражено в комментариях. Да, с одной стороны в статье указываются плюсы знаний большего количества реализаций технологий, но суть статьи в системном представлении имеющихся или необходимых знаний. Используя такой взгляд, начинающий программист может составить себе чеклист тех технологий, которые он знает или должен узнать и постепенно изучая и заполняя его до конца, он будет иметь минимальный объем технологий для создания приложений. На мой взгляд, тема не раскрыта даже в минимальном объёме. Данная статья описывает необычный взгляд на введение в программирование. Не встречал статей, которые описывали проблему с такого же угла. Большинство описывают конкретные языки. Опишите пожалуйста, какой по вашему мнению должна быть статья, которая лучше раскроет данную тему. На php можно писать десктопные приложения, уже 10 лет назад когда я ещё использовал этот язык были соответствующие средства, а сейчас вообще есть qt биндинги. Это не целевое использование, но язык которые знает много народу обычно быстро начинает становиться языком общего назначения. С одной стороны я этого не знал. С другой стороны, это не меняет сути дела. Один из главных посылов статьи — использовать более подходящие технологии в определенных местах. Вот лично я считаю, что начинающим программистам нужно держаться как можно дальше от таких вот нецелевых использований. Знание различных технологий и различных языков программирования дает возможность сделать более правильный выбор. А если человек знает только одну реализацию какой либо технологии, то и выбора у него нет. Вообще посыл статьи остался непонятен, с одной стороны много разглагольствований про предметные области, различные технологии, а затем почему-то фреймворки выделяются как отдельная технология хотя практически в любой технологии есть свои фреймворки ; затем виртуальные машины вообще выделяются в инструменты, когда это на самом деле тоже достаточно большой технологический и самобытный пласт. Насчет фреймворков согласен, это нечто другое, это технология внутри технологии. То есть фреймворк это реализация некой конкретной технологии. Но так же сама идея создавать фреймворки является технологие. На самом деле хотелось выделить это как отдельную часть рзнаний программиста. Почему виртуальные машины, по вашему мнению, не являются инструментом для большинства проограммистов? Если вы конкретно про заголовок, то соглашусь. Если же мы говорим про суть статьи, то суть статьи состоит из 2 частей. Дать новичкам представление о том, что программирование это не просто язык программирования, а еще большое кол-во других технологий и инструментов. Без этого Git, Subversion, Tfs выглядят просто отдельными программами. Когда мы вводим понятие технология или категория программных продуктов, то мы автоматически объединаем данные программы. Именно поэтому в данной статьи даны описания технологий, а не просто их перечисление. Попробую как и Вы, по порядку. Но до этого он должен узнать, что есть там всякие веб-технологии, есть всякие языки, паттерны и фреймворки к ним, что есть высоконагруженные и высокотребовательные по всяким безопасностям и прочему системы, со временем понять, что те же базы данных могут жить фрагментарно на кластерах, что они могут быть не только транзакционные, но и всякие key-value, и что это вообще большая и больная тема, а также то, что узкое горло частенько возникает в том числе и по причинам чисто техническим, которые решаются множеством путей, с виду вообще никак с веб-ориентацией не связанных. Про виртуальные машины — конечно, можно их использовать просто как инструмент, запустил сервачок в нём и радуйся — но ведь можно и работать в этой области или, как Вы написали, технологии — можно знать, что на всяких там виртуалках и контейнерах существуют и процветают целые индустрии в отрасли, можно узнавать, что принцип виртуалок весьма универсален и весьма интересен, и что данный принцип используется намного чаще, чем кажется, в том числе в защите обычного такого, невиртуального софта, и даже в вирусописательстве. А если докопаться, то окажется, что и в процессоре бывает микрокод, который есть ни что иное, как виртуальная машина, а отсюда путь в далёкую огромную сферу хардверного инжиниринга. Тут, конечно, конструктивную критику строить сложнее. На мой взгляд, Вам просто не хватило элементарного писательского таланта. То есть, идея есть, но подача скомкана и несуразна. Мне очень понравились абзацы про то, что программист не всегда должен писать идеальный код, а в первую очередь должен выполнить поставленную задачу, но вот дальше мысль расплывается, и статья распараллеливается в несвязный сумбур, непонятный новичку а мне показалось, статья ориентирована как раз на новичков. Согласитесь, независимо от того, будем ли мы писать драйвера для операционок, или же клепать сайтики на джумле, дизайнить приложения в Visual Studio, или писать игрушки с нуля на OpenGL — во всех этих случаях системы контроля версий рано или поздно пригодятся. Потому, в моём субьективном взгляде, новичку надо сначала поверхностно объяснить, что есть курица — этот весь огромный мир программирования, и чтобы в него вникнуть, надо сперва родить яйцо — понять принцип алгоритмирования. Ну а затем уже выбрать то, что интересно, и строить цыплёнка, перья у которого будут из необходимых инструментов и технологий. Проще говоря, у Вашей статьи я не прочувствовал этого самого алгоритма, пусть даже он бы не сходился с моим. Дата основания 09 марта Локация Санкт-Петербург Россия Сайт arcadia. Интересные публикации Хабрахабр Geektimes. Астробиологи из Эдинбургского университета считают, что жизни на Марсе нет из-за токсичных химических соединений GT. Нейросети диагностируют проблемы с сердцем более точно, чем врачи GT. За какие заслуги Kingston любят центры обработки данных? Вещи, которые мне надо было знать прежде, чем создавать систему с очередью. Обработка многократно возникающих SIGSEGV-подобных ошибок. Выбор алгоритма вычисления квантилей для распределённой системы. Как у Словакии украли национальный домен верхнего уровня. Разделы Публикации Хабы Компании Пользователи Песочница. Информация О сайте Правила Помощь Соглашение Конфиденциальность. Услуги Реклама Тарифы Контент Семинары.


Но шпа при сердечном приступе
Dota 2 как сделать логотип
Сколько детейв многодетной семьев россии
Приказа минфина россии от 24.12 2010 186н
Карта мира западное и восточное полушарие
Болят коленипри приседаниии вставании причины
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment