눈에 띄어서 빌려본 책.
미루고 미루다가 반납일에 맞춰서 급하게 읽으면서 정리했더니 범주가 엉망이다. 다음엔 범주를 좀 더 신경써서 기록해야 할 듯.
코딩을 처음 입문하는 사람에게 생소한 용어를 쉽게 풀어서 설명해주고,
개발을 배우기 위해서는 어떤 커뮤니티가 있고 어떤 강의사이트가 있는지,
그리고 현업의 관점에서 빠르게 변화하는 업계를 개략적으로 알려주는데에 큰 의미가 있는 책이였다.
자바를 첫 프로그래밍 언어로서 배우기로 결정했기에, 자바가 어느정도 하향추세에 있는 언어라는 취지로 말한 부분은 개인적으로 아쉽긴했지만, 아직 건재한 언어임은 확실하고(특히 한국에서) 당장이든 나중이든 내 살길을 찾기위해서라면 이런 부분도 염두에 두는데에 좋은 정보원이 되었다고 생각한다.
여러 매체를 통해서 이미 알고있었지만, 내가 준비하는 백엔드가 (프론트엔드에 비해) 전공지식이 더욱 필요하고 문턱이 높아 비전공자에게는 충분한 노력과 시간이 필요하다는 책의 완곡한 말에는 약간 절망하기도 했지만, 문턱이 높은만큼 보장되는 무언가도 있을 거고, 어떤 언어를 선택하든 결과는 나한테 달려있다. 그러니 어려워도 존버, 공부할 게 많아 힘들어도 존버할 정신을 무장을 해야한다..
(수정, 23.5.26)
이거 읽는 시점이 "HelloWorld"도 찍어보지 않은 상태인지라 앞부분 일부를 제외하고는 크게 와닿지는 않았다. 뭐가 뭔줄은 알아야 저자가 이렇게 적은 의도를 파악할텐데.
나중에 시간이 흘러서 성장한 후 아래 내용들을 심오하게 받아들일 수 있을 때, 진지하게 받아들이도록 하자.
-----------------------------------------------
개발자의 특성
1.논리적 사고가 밥벌이 수단.
2.반복되는 일 싫어함
3. 즉각적인 피드백에 익숙
4.항상 성장해야함
5. 가진 것을 나눌수록 오히려 이득
비전공자가 개발자로 취업해 코딩할 수 있나?
-전공자가 여러 전공을 들으며 유리한 부분이 있음. 하지만 그걸 모르더라도 실제 코딩을 하는것과는 다름. 비유하자면 음성학, 화성학을 몰라도 노래를 잘 할 수 있는 것처럼.
실습이 제일 중요하다. 남이 짠 코드를 열심히 읽어보는것도 도움됨.
반병현 : 취업이 잘되는 분야 : HTML, CSS, 자바스크립트 ->프론트엔드
C언어나 자바는 입문하기 어렵다.
깃허브 프로그래밍 언어 순위 통계 : 자바스크립트 71.5%
파이썬 5.9 자바 3.7 C++ 2.6 ....2021 4분기 점유율 기준
자바는 점유율 3위인데, 입문을 추천하지 않는다.
-입지가 좁아지고 있다.(오라클-구글 소송
-가독성 떨어짐
-자바 생태계 규모가 성장하지 못함.
자바스크립트를 배워라.
-관련 일자리가 제일 많다. 취업분야가 넓고 수요도 크다. react.js, veu.js 같은 도구도 인기다. 취향에 맞추어 백엔드나 서버쪽으로 이직도 가능하다.
파이썬을 배워라.
-코드가 단순하고 문법이 간결해 공부하기 쉽고 효율적이다.
-코딩이 나에게 맞는 일인지 알아보기 위한 목적으로도 rc
c언어를 배워라
-근본언어. 굉장히 빠르게 실행. 가장 기본..
프레임워크
-비유하면 밀키트. 정보를 찾기위해 영어공부도 좀 해둬야함.
-seaborn, numpy, pandas 등.
코딩연습 문제은행!
-백준 : 단계별로 잘해줌
프로그래머스 :자체개발문제, 대기업 입사시험
css diner : 시각적으로 정답 오답 확인. css만 다룸.
구글링을 하라!
-현재의 이슈 특정. 구체적으로, 핵심키워드 포함시켜서.
-검색문법 사용하기 : “” = 반드시 포함되어야하는 단어
키워드 추가/제거 : + / -
-영어로 검색하기.
생활코딩, 코딩이랑 무관합니다만, 텐서플로우
타인의 결과물 참고하기(개발자의 직업병)
-코드간의 종속성을 덜어내고 불필요한 동작없이 간결하게 만드는 것이 숙명
#시행착오에서 배운 것들
-깔끔한 코드 지향하기
-기록남기기 – 이슈를 해결하기 위해 어떤 시도를 했는지 기록
코드안에 주석으로 남기기도 하고, 개발용 블로그나 이슈사이트에 코멘트로 기록.
변수명으로 장난치지 않기
주석은 상세하게 작성
연습용 코드는 잘 모아두기.
용어와 개념을 잘 정립하라. 기초적인 단어부터 첫단추를 잘 꿰어야한다.
깃허브 계정을 만들 때 velog와 같은 블로그를 같이 만들도록 권장한다.
개발자 콘퍼런스에 참석하라. 튜토리얼과 같은 것도 추천. 입문자 대상..
코드 컨벤션을 공부하라.
혼자 끙끙 앓는것도 중요하지만 오래걸린다면 선배나 포럼에 물어보라.
밤을 지새우는건 좋지않다. 수면부족은 뇌기능 유지에 치명적이다.
모든 것을 직접 만드려고 애쓸 필요는 없다. 오픈소스로 공개한 것들을 적극 이용해라. 이것도 개발자에게 필요한 역량이다.
#이건 꼭 해보길 바람
다른 사람들과 같이 일해봐야한다
-코드 리뷰, 다양한 방법 공유, 상대방의 용어 공유 등...
다른 사람이 만든 프로젝트를 많이 리뷰해라.
-다른 사람의 시행착오를 건너뛰고 경험치만 내것으로 만드는 방법.
흥미를 유지할 수 있는 자기만의 방법을 만들어야 한다.
무조건 많이 코딩해봐라.
-어떻게든 일상에서 사용할 수 있는 프로그램 만들어보기.. .등 새로운 기술을 습득하고 다양한 방법으로 경험을 쌓아야한다.
과거의 내 작품을 현재 실력으로 첨삭해봐라.
사이드 프로젝트에 도전해봐라.
#개발자의 여러직군
*프론트엔드 : 현재 가장 수요가 많다. 인간과 컴퓨터 사이를 연결, 사람에게 편안하게 제공하는 것. 마크업언어는 활용도가 자유롭다. 근본이 없다고 볼수도 있고 한계가 없다고 볼수도 있다. 따라서 창의적이고 임기응변으로 유연하게 대처하여 디자이너의 요구사항을 맞춰야 함.
-주로 사용하는 기술 : 마크업언어와 호환되는 프로그래밍 언어
-필요한 지식 : 마크업언어, 정보통신, 최적화
-평상시 하는 업무 : 프론트엔드 개발 및 관리
-채용 직군 : 대부분 it기업
*ios 개발자
-주로 사용하는 기술 : swift, objetive-c
-필요한 지식 : 데이터베이스, 운영체제, 통신, 알고리즘 등
평상시 하는 업무: ios기반 서비스 개발 및 관리, 기기제어 구현 등
채용 직군: ios 기기 대상 서비스를 제공하는 대부분 it기업
구인난에 시달리는 직군. 애플 기기를 대상으로만 신경쓰면 되는 점은 편한데, 애플이 망한다면,...?
*안드로이드 개발자
주로 사용하는 기술 : 코틀린, 리액트 네이티브, 자바, 자바스크립트 등
필요한 지식 : 데이터베이스, 운영체제, 통신, 알고리즘, 마크업 등
평상시 하는 업무 : 애플리케이션 개발 및 관리
채용 직군 : 대부분 it서비스 기업
ios개발자에 비해 수많은 문제에 대처해야한다. 기기가 너무많아.......
*게임개발자
주로 사용하는 기술 : 언리얼, 유니티3d, java
필요한 지식 : 물리엔진, 렌더링, ai, 그래픽, 라이브러리 등
평상시 하는 업무 : UX/UI개발, 서버관리, 보안, 고객DB관리
채용 직군 : 게임개발사, 플랫폼 사업 기업
#꾸준한 노력과 꼼꼼함이 필요한 분야
*클라우드 개발자
주로 사용하는 기술 : 백엔드 관련 기술
필요한 지식 : 컴공학 지식, 네트워크 및 통신, 보안지식
평상시 하는 업무 : 시스템관리, 서비스 개발 등
채용 직군 : 클라우드 플랫폼, 데이터센터, 대규모 IT기업 등
인터넷을 통해 원격으로 접속, 작업을 수행하도록 도움.
*상거래 플랫폼 개발자
주로 사용하는 기술 : 백엔드, 프론트엔드, 데이터 과학
필요한 지식 :컴공학 지식, 네트워크 및 통신, 통계학 등
평상시 하는 업무 :서비스 기능 개발, 오류해결, 유지보수등
채용 직군 :소셜커머스 등 ᄉᆞᆼ거래 플랫폼 기업
쿠팡 네이버쇼핑 등등...백엔드를 활발하게 채용중.
*임베디드 개발자
주로 사용하는 기술 : C, C++ 등
필요한 지식 :컴퓨터 구조, 전자공학, 전자통신, 하드웨어 설계 등
평상시 하는 업무 :IOT 시스템 구축, 전가기기제어 시스템 개발 등.
채용 직군 :스마트 팩토리, 가전업계, 자동차업계 등
기계장치에 탑재되어 기기를 제어하는 역할. 등등... 방대한 전자공학적 지식 요구.
*오픈소스 개발자
주로 사용하는 기술 : 분야별 프로그래밍 언어
필요한 지식 : 성능 최적화, 도메인 지식 등
평상시 하는 업무 : 소프트웨어 개발, 기능개선, 버그해결 등
채용직군 : 오픈소스 소프트웨어 부서, 비영리 기관 등.
해외 유명 대기업엔 있는데 국내에선 그냥 개인들이 취미로 하는 경우..
#수학적 지식이 필요한 분야
*서버개발자
주로 사용하는 기술 : 리눅스, DB, API, DOCKER, 통신기술 등
필요한 지식 :백엔드 분야 컴공학 기술 일체
평상시 하는 업무 : 백엔드 개발 서버시스템 구축, 유지보수,
채용 직군 : 대부분 IT기업, 클라우드 서비스 기업 등.
서버와 관련된 업무. 백엔드, DB개발자, API개발자 등 있지만 여기서 말하는 서버개발자는 순수한 서버 개발자.
의외로 다양한 지식이 필요하고 다양한 분야의 전문성이 폭넓게 요구되는 분야.
*백엔드 개발자
주로 사용하는 기술 : 파이썬, HTML, 자바스크립트, DB, API
필요한 지식 :백엔드 분야, 데이터분석, 네트워크
평상시 하는 업무 : 백엔드 개발, API개발, 데이터베이스 관리
채용 직군 : 대부분 IT직군
눈에 보이지 않는 것들을 개발. 많은 분야를 커버.
API개발, DB관리, 서버 및 클라우드 관리..
프로트엔드와 연결되어야 의미가 있다. 그 작업이 API.(Application progrmming interface) 개발. 로그인, 결제, 검색 등.. api를 통해서만 가능.
데이터베이스도 잘 다룰수 있어야한다. 회원정보, 결제정보, 물품정보 등등..
어느정도의 전공지식을 요구. 따라서 비전공자에겐 충분한 시간과 노력이 필요
*데이터 과학자
주로 사용하는 기술 : 파이썬, R, Matlab
필요한 지식 : 통계학, 빅데이터 분석기법, 도메인 지식
평상시 하는 업무 : 데이터 분석, 새로운 인사이트 발굴 등
채용 직군 : 빅데이터 개발자, 데이터 과학자, 데이터 분석가 등
주로 빅데이터 수집, 가공, 분석(인사이트 개발)
수학이나 통계학적 선수지식 필요.
*보안개발자
주로 사용하는 기술 : c, 어셈블리어, 자바 등
필요한 지식 :컴퓨터 공학 지식 전반, 암호학, 리버스엔지니어링 등
평상시 하는 업무 : 보안 취약점 탐색, 보안 취약점 개선 및 보호
채용 직군 : 정보보안 기술자, 보안관리자, 보안시스템 운영자 등
상당히 많은 분야의 지식이 필요. 컴퓨터공ㅎ학 전반의 지식, 등... 어셈블리어 능통사용 등..
장기간 커리어를 쌓아 이직은 가능. 백엔드나 서버개발로 시작해 보안개발로 염두에 두는 경우도 있다.
#마르지 않는 창의력이 필요한 분야
*인공지능 개발자
주로 사용하는 기술 : 파이썬, 텐서플로우, PyTorch(파이썬을 위한 오픈소스 머신러닝 라이브러리) 등
‘필요한 지식 : 통계학, 알고리즘, 머신러닝, 딥러닝
평상시 하는 업무 : 새로운 기술개발, 기존기술 개선, 신기술의 제품화
채용 직군 : 연구자, 데이터과학자, 개발자, 프로젝트 매니저 등
공학자나 연구자에 가까움. 수학적, 통계학적 지식 많이 필요.. 수준급 수학적 지식 필요.. 석박사 분야. 컴퓨터 비전(CV)과 자연어 처리(NLP) 개발.
전자 : 의료영상 분석, 영상합성, 후자: 빅스비, 시리 등..
/*UI/UX 개발자
주로 사용하는 기술 : HTLML, CSS, JAVASCRIPT
필요한 지식 : 디자인, 인간공학, 산업공학, 서비스 기획 및 설계
평상시 하는 업무 : 서비스 설계 및 구현, 사용자 경험 설계
채용 직군 : 웹개발, 앱개발, 서비스 설계 등
UI : USER INTERFACE. 사용자가 눈으로 보는 외형, 구조, 아이콘, 삽화의 배치 등 (기술적)
UX : USER EXPERIENCE. 사용자가 서비스를 사용하면서 느끼는 경험. (감성적)
UI개발은 웹디자인, 앱디자인 주로 공부
UX개발은 서비스 기획등을 추가로 공부.
*콘텐츠 개발자
주로 사용하는 기술 : 주로 사용하는 기술 : 웹기술, 콘텐츠 개발 엔진 등
필요한 지식 : 콘텐츠 전달 역량, 백엔드 개발 역량
평상시 하는 업무 : 콘텐츠 개발, 콘텐츠 전달 방안 구현
채용 직군 : 웹 콘텐츠 기업
유튜브, 넷플릭스, 왓챠 등... 다른 사람이 제작한 컨텐츠를 웹/앱 서비스를 통해 배포하고 전달하는 기술 개발.
*메타버스 콘텐츠 개발
주로 사용하는 기술 : C#, UNITY
필요한 지식 : 최적화, 기획 역량 등
평상시 하는 업무 : 메타버스 플랫폼을 위한 월드제작
채용 직군 : 메타버스 플랫폼 기업
#어떤 언어로 공부를 시작할까?
1. 파이썬
쉽고, 모든 분야에 활용된다. 오픈소스 프레임워크가 많고, 간결하고 사용하기 쉽다. 채용현황도 활발하다.
2. 자바스크립트
쉽고, 웹 프론트엔드 및 파생분야 전반에 활용되고 백엔드 일부에도 활용.
광범위한 호환성, 가장 넓은 취업문, 오픈소스도 많음. HTML CSS를 선행학습 해야함.
주로 프론트엔드에 개발되지만 다양한 프레임워크를 활용하면 백엔드나 게임개발 등 다양한 분야에서 활용된다.
저자 판단하, 가장 빠르게 5천만원 연봉을 달성하는 방법은 TYPESCRIPT를 공부해 취업한 후 REACT.JS, VUE.JS등의 웹프레임워크를 연습해 이직하는 것. 가장 수요가 많은 대신 가장 빠르게 변화한다.
C언어
난이도는 보통이지만 거의 모든 업계에서 1순위.. 영원히 사라지지 않을 것. 고유의 영역이 있음
전공자들과의 정면대결을 해야해 입문은 어렵다.
자바
아직 취업문이 넓다. 습득난도는 어렵다. SI, 백엔드, 안드로이드 개발에 사용
오래된 회사들은 아직 자바개발자들을 많이 채용하고 안드로이드에 자바지식이 필요함. 플랫폼과 기종에 얽매이지 않는 이식성이 있어 좋다.
하지만 경력이 많은 개발자와 취업시장에서 경쟁해야하며, 자바로 하는 모든 작업은 자바스크립트, 코틀린으로 대체가능. 구글-오라클 소송 이후 자바시장 축소중. 하지만 아직까진 건재하다.
자바 입문은 충분히 고민하여 결정하길 바람. 아직 꾸준히 수요가 있다. 자바로 개발된 기존 시스템을 유지, 보수하는 언어는 여전히 자바이기 때문. 하지만 다른 언어로 대체되고 있다. 좁아지는 문에서 경력직 개발자들과 경력을 해야한다.
한편으론 큰 노력이 따르더라도 확실하게 개발자로 이직을 원한다면 자바관련 일자리가 줄어들어도 실무에서 쌓은 경험을 바탕으로 새로운 도구에 빠르게 적응할 자신이 있다면 어쩜 최고의 선택.
#어떤 기준으로 선택해야할까?
-자신만의 기준으로. 개발이란 행위에 흥미를 느끼고 공부를 지속할 수 있도록 해야한다.
저자기준, 당장 필요한 언어, 문법이 쉬운 언어, 가시적인 결과물을 낼 수 있는 언어(프론트 엔드가 일반적), 카리큘럼이 상대적으로 짧은 언어, go나 ruby같은...
#학벌의 벽을 넘을 수 있을까?
-중요하기도 하고, 중요하지 않기도 하다. 어느 업무를 하냐에따라서 다름.
개발은 경험치 싸움. 누가 더 많은 코드를 읽었는가, 누가 더 시대를 앞서나가는가, 누가 더 코드를 잘 쓰느냐.
#도구보다는 기술이 속한 분야가 중요하다.
실력이 쌓이면 새로운 도구는 금방 공부할 수 있다. 그러나 기술이 속한 분야의 경력이 더 중요하다. 프론트, 백, 데이터 다양하게 하는것보다 하나만 파는게 더 좋다는 말. 한우물을 깊게 파야한다, 단, 우물을 팔 자리는 잘 골라야 한다. 역사의 뒤안길로 사라질 분야에서 커리어를 쌓는다면 곤란하다...
#무료 온라인강의
1.생활코딩 : 올 무료. 프론트, 백, 데이터베이스, 프로그래밍 언어, 클라이언트, 서버, 데이터사이언스 등 중요한 토픽 모두 강의 제공.
커리큘럼 설계도 도와준다.
2. k-mooc.
대학, 연구소 교수진의 수업 녹화. 컴퓨터 공학 지식을 보충하는 용도. 자료구조론, 컴퓨터 구조, 딥러닝. 등.
3. 코세라 : 전세계에서 가장 사랑받는 mooc서비스.
딥러닝, 인공지능 -> 앤드루 응.., 데프리 힌턴.
문제는 언어의 장벽인데 케이묵에서 제휴하여 한국어 자막을 지원하기도 함.
*k-디지털 기초역량훈련 알아볼 것.
#금전적 대우 vs 성장가능성.
#프로젝트가 곧 나의 이력서.
개발자의 포트폴리오는 깃허브 url하나로 정리된다.
시작하는 처음부터 깃허브에 차곡차곡 저장해둬라.
노션을 활용해 포트폴리오를 관리하는 사람도 많다.
#이상적인 프로젝트 소개예시
제목, 역할, 사용도구, 기간, 상세설명(회사소개, 계기 소개, 내 업무 소개, 추가 어필부분)
기업이 신입 개발자에게 기대하는 것은 화려한 과거 경력이 아니라 어떤 경험을 했는지, 점점 성장하는 모습을 보여주고 있는지!
비전공자 딱지위에 경력을 덧칠하는 것.
개발자의 일은 언제나 증명의 연속. 커리어는 개발자로서의 능력을 입증하기 위한 노력.
'About Dev. > Book' 카테고리의 다른 글
기술 면접 대비 CS전공 핵심요약집, 이수진, 2023. 08 (1) | 2024.01.14 |
---|---|
오늘부터 개발자, 김병욱, 2021.11 (1) | 2024.01.02 |
개발자가 되고싶습니다, 앨런, 2023.04 (2) | 2023.12.31 |
Do it! 첫 코딩 with 자바 (0) | 2023.07.03 |