진입 임계값: 높음, 낮음, 중간
프로그래머들 사이에서는 "진입 임계값"에 대해 자주 들을 수 있습니다. 이는 개인 "후배"가 첫 번째 진지한 프로그램을 작성하고 직업을 찾기에 충분한 수준으로 프로그래밍 언어를 마스터하는 데 필요한 노력의 양을 반영하는 개념입니다. "진입 임계값"은 다음과 같은 지식으로 구성됩니다.- 언어의 구문과 뉘앙스의 특징;
- 도서관;
- 알고리즘과 데이터 구조.
웹인가, 웹이 아닌가?
편물
웹 프로그래머는 프론트엔드 개발자 와 백엔드 개발자 로 나눌 수 있습니다 . 이 용어가 무엇을 의미하는지 이해하는 것이 좋습니다. "프런트엔드" 개발자는 소위 클라이언트 측, 즉 사용자가 보게 될 부분을 다룹니다. "백엔드"는 서비스의 소프트웨어 및 하드웨어 부분으로, 서버에서 실행됩니다. 어떤 프로그래밍 언어를 선택할지 결정하는 프런트엔드 개발자 에게 필수품은 JavaScript 와 해당 프레임워크(Angular JS, React 등)입니다. JS 방언은 상위 언어만큼 인기가 없지만 CoffeeScript, TypeScript와 같이 유용할 수도 있습니다. JScript, VBScript가 있기 전에는 flash AS도 있는데 공룡만 기억하네요 =) 게다가 HTML , CSS 도 이해해야 합니다 .웹 외(엔터프라이즈, 데스크톱, 모바일)
저는 이러한 프로그래밍 언어를 이렇게 이상한 이름을 가진 카테고리로 구체적으로 분류했습니다. 이들 중 대부분은 기업, 데스크탑, 심지어 모바일 애플리케이션을 작성하는 데 사용될 수 있습니다. 이해하기 쉬운 OOLP인 Python은 최근 기계 학습 의 발전으로 인해 엄청난 인기를 얻었습니다 . Python의 지지자들은 널리 Python을 사용합니다. ML은 IT에서 상당히 젊은 분야이고, 이미 첫 결실을 맺었지만 프로그래밍 언어를 선택할 때 이 업계에 뛰어들려고 서두르지는 않을 것입니다. 첫째, 수학을 아주 잘해야 합니다. 둘째, 인기의 물결은 "블록체인"이나 "나노기술"과 같은 방향으로 진행될 수 있습니다. 또한, 기억하시겠지만 Python은 웹 개발에 사용됩니다. C++ : 클래식, 모든 것이 "플러스"를 기반으로 구축되었습니다. 이 언어는 모든 인기 있는 OOLP의 조상이었으며 초보자는 반드시 주의를 기울여야 합니다. 많은 인기 있는 응용 프로그램이 이를 기반으로 합니다. 그러나 "발에 총을 쏘는" 확률이 높고 이해하기 어려운 구문은 초보자가 프로그래밍의 마스토돈을 마스터할 가능성을 무효화합니다. Kotlin - 멋쟁이를 위한 Java - OOP와 함수형 프로그래밍의 미친 혼합입니다. 최근에는 Java에서 Kotlin으로 전환한 숙련된 개발자가 생산성을 크게 향상시켜 인기가 높습니다. 숙련된 개발자라면 이 언어에 빨리 익숙해질 것입니다. 그런데 Scala에도 동일하게 적용되지만 Android에서는 Kotlin이 인기가 있습니다. Java는 초보자도 배우기 쉽습니다. 포함하여 JavaRush 덕분에 프로그래밍 언어를 선택하는 방법을 이해했습니다. =) Java 구문은 명확하며 "발에 총을 쏘는" 가능성이 있지만 중요하지는 않습니다.OOP 또는 POP?
절차적 접근
절차 지향 접근 방식에는 특정 범위의 문제를 효과적으로 해결하기 위해 하나의 전체로 조합할 수 있는 순차적 명령문으로 구성된 프로그램을 작성하는 것이 포함됩니다. 이러한 언어에는 C , PureBasic 및 Pascal이 포함됩니다 . 고등학생과 중학생에게 낙담을 가져오는 것과 같은 것입니다. 상대적으로 젊은 GO 도 있습니다 . 그러나 절차적 언어에 대한 친숙함은 잠재적인 개발자에게 매우 유용합니다. 나에게 절차적 언어에 대한 몰입은 Mathematica 시스템(Wolfram) 및 대학 연구 활동과 관련이 있습니다. 프로그램 시작부터 끝까지 선형적으로 이동하는 올바른 알고리즘 접근 방식과 간단한 절차 덕분에 현대 이론 물리학과 관련된 값을 계산할 수 있었습니다. 때때로 스스로 계산하는 것보다 코드를 작성하는 것이 더 쉽다는 것을 이해하기 시작한 것은 이러한 "순차적" 언어 덕분입니다. PPP를 공부하면 고용주가 채용할 때 거의 항상 후보자에게서 보고 싶어하는 좋은 알고리즘 교육이 제공됩니다. IT의 모든 것과 모든 사람의 기초는 절차적 언어를 기반으로 구축되므로 이를 과소평가하지 마십시오. 그런데 어떤 프로그래밍 언어를 선택하여 학습할지 결정하는 초보자는 멀티스레딩이 OOP의 독점 특권이라고 생각하는 경우가 많습니다. 이것은 잘못된 것입니다. 절차적 프로그래밍 언어를 사용하면 병렬 계산도 수행할 수 있습니다.객체 지향 접근 방식
절차적 언어로 시작한 사람들은 대부분 수학, 알고리즘 및 데이터 구조에 대한 좋은 지식을 가지고 있습니다(이는 기술 대학에서 이러한 지식 영역을 강조하기 때문입니다). 그러나 현대 현실에서 성공적인 프로그래머는 프로그래밍에 대한 또 다른 접근 방식인 객체 지향을 잘 익힌 사람들인 경우가 많습니다. OOP 이데올로기는 진정한 글로벌 시스템 구축을 가능하게 합니다. 이 접근 방식의 특징은 현실 세계와의 유사성입니다.- 다양한 객체가 서로 상호 작용하고 서로 독립적으로 존재합니다.
- 개체에는 계층 구조가 있으며 조상의 동작을 채택하거나 변경할 수 있습니다.
- 추상적인 개념으로 작업할 수 있지만 실제로 존재하는 개체만 상호 작용할 수 있습니다.
예 절차지향 언어는 특정 문제를 해결하기 위한 도구입니다. 그리고 작업이 사소한 변경이라도 발생했다면 모든 알고리즘을 다시 작성하는 데 시간과 노력을 소비해야 할 가능성이 높습니다. Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:
И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода. Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения. А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми. |
- ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.
- Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.
- Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
-
Кроссплатформенность.
Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
가장 광범위한 문서 기반: 공식 Oracle 문서, 교육 포털, 지속적으로 개발되는 커뮤니티. 개발 중에 발생하는 대부분의 질문에 대한 답변은 몇 분 안에 찾을 수 있으며, 가장 중요한 것은 검색 엔진에 무엇을 입력할지 이해하는 것입니다 =)
-
인기.
Java는 세계에서 가장 인기 있는 프로그래밍 언어입니다. 위에서 언급한 Android 및 웹 개발자 외에도 거의 모든 초보 기업 개발자가 Java로 글을 작성합니다. Enterprise는 대기업의 요구에 필요한 자체 개발입니다.
매년 증오자들은 "Java의 죽음"을 예측하며 " 오라클은 Java 지원을 중단할 것이며 일반적으로 당신은 말도 안되는 일을 하고 있습니다 ."라고 말합니다. 이건 틀렸어! Java의 새 버전은 6개월마다 출시될 예정입니다. 최신 버전의 가장 중요한 혁신 사항과 기능은 여기에서 읽을 수 있습니다 .
나에게 있어 Java 8의 람다는 새 버전은 말할 것도 없고 혁명이자 발견이었습니다! 지금 저는 "역행" 프로젝트를 진행하고 있기 때문에 혁신에 대해 자세히 조사하지는 않지만 Java가 계속 살아 있다는 사실은 사실입니다.
-
기계적 인조 인간.
Android는 지난 4년 동안 휴대폰 시장의 80% 이상을 자신 있게 점유해 왔으며 TV, 미디어 플레이어, 심지어 자동차의 미디어 시스템까지 이 운영 체제에서 작동합니다. 그리고 이 OS의 개발은 주로 Java로 진행됩니다. 어떤 전망이 열리고 있는지 상상해 보십시오. Android 개발자로 취직하면서 관심이 생겼습니다. 내가 개발하는 제품의 비용은 얼마입니까? 연간 가격은 약 5달러인 것으로 나타났습니다. 합리적인 질문이 생겼습니다. 이 사무실, 급여, 쿠키, 테니스 테이블, 로봇 및 기타 "좋은 것들"에 대한 자금은 어디서 나왔습니까? 수량의 문제입니다. 우리 애플리케이션에는 2천만 명의 사용자가 있습니다.
-
급여.
그리고 후식으로는 Java 개발자의 급여가 업계 최고 수준입니다. 당신은 특정한 목적, 즉 좋은 직업을 얻기 위해 프로그래밍을 배우게 될 것입니다.
프로그래밍 언어의 인기
프로그래밍 언어를 선택할 때 학습의 궁극적인 목표인 첫 직업을 구하는 것에 대해 생각해야 합니다. 다양한 언어의 인기를 평가하기 위해 인기 채용 포털 에 가서 모스크바에 대한 다양한 요청에 대한 공석 수를 살펴보기 시작했습니다. 아래에서 결과를 볼 수 있습니다.자바: | 277 |
파이썬: | 227 |
PHP: | 188 |
씨#: | 147 |
C++: | 131 |
루비: | 40 |
스칼라: | 24 |
코틀린: | 20 |
결과
프로그래밍 언어를 선택할 때 초보자가 주의해야 할 사항은 다음과 같습니다.- 인기(Java가 지속적으로 선두 위치를 차지함)
- 진입 기준(Java의 경우 - 평균: 고용주가 요구하는 역량 범위가 상당히 넓음)
- 사용 가능한 자료(러시아어에는 JavaRush와 유사한 포털이 없으므로 손바닥이 누구인지 추측합니다 =))
- 적용 분야: 프로그래밍 언어를 사용할 수 있는 산업이 많을수록 시장에는 더 많은 전문가가 필요합니다. 이미 크로스 플랫폼에 대해 이야기했지만 반복해도 질리지 않을 것입니다.
GO TO FULL VERSION