! 한번 읽고 지나갈 글들이 아니고 개발 공부를 하면서 개발자로 일 하면서 계속 읽어도 좋은 글들이다.
프로그래밍 학습 방식 2가지
1.기초 지식부터 쌓은 후 무엇인가를 만들어 가는 학습방식
2. 무엇인가를 만들어 가면서 관련된 지식을 학습해 가는 방식
대부분 1번 방식으로 학습한다.
1번방식의 과정을 잘 소화하는 사람은 극히 일부이다.
자신이 어떤 방식으로 학습할 때 더 즐겁고 효과적인지 찾아야한다.
2번방식으로 하는 경우
자신이 만들고 싶은 프로그램(ex.구구단, 캘린더) 설정하고 만들어가면서 필요한 지식들을 하나씩 학습하면된다.
자신에게 맞는 책은 오프라인서점에서 구매. 2번방식으로 하면서 필요에의해 교재를 보며 학습하는 방식을 추천한다.
검색을 잘하려면 '용어'를 잘 알아야한다.
공부란 뭔가에 사용하기 위해 "필요한 지식"을 습득하는 것이다. 목표, 만들고 싶은 프로젝트가 있다면 공부의 우선순위는 자동으로 정해진다.
자기 주관이 있어야한다. 자기 주관이 있는 사람들은 유행에 크게 흔들리지 않는다. 자신에게 필요한 것을 찾아서 공부하고 하고 싶은 공부를 한다. 내가 지금 어떤 것이 부족한 상황인지 스스로 끊임없이 질문해야한다.
프로그래밍 의식적 연습하기
왜 공부하는가
프로그램은 잘 동작해야하고 코드는 사람이 이해하기 쉽도록 작성되야한다.
이 목표는 학습의 우선순위를 정할 때 가장 먼저 고려 될 부분이다.
효과적인 개발 공부법
해당 분야 커뮤니티 또는 전문가를 찾는다.
트위터, 페이스북 활용
키워드를 줍는다.
정의, 구성, 기능, 차용, 방법, 목적, 내용 등등을 바탕으로 키워드를 찾기
키워드를 바탕으로 어떤 공부가 필요할 지 청사진을 그린다.
각 키워드가 무엇인지, 왜 사용되는지, 기존의 것과 무엇이 다른지, 특정 상황엔 어떻게 되는지, 구체적으로 무엇이 있는지, 어떤 모델이 있는지 와 같은 구체적인 질문을 하며 청사진 그리기
가용한 리소스를 최대한 활용하여 공부한다.
책, 홈페이지, 인터넷 강의(인프런,udemy,udacity), 오프라인 강의, 세미나(트렌트 파악에 도움)
데드라인을 정한다.
완료했다면 보상주기. 완료하지 못했다면 회고하기.
공부한 내용은 반드시 블로그에 정리한다.
부족했던 것, 몰랐던 것, 알았던 것 구분하여 정리
개발자의 경우 3년 지식이면 낡은 징후를 보이기 시작하고 5년이면 생명을 다한다.
프로그래밍의 본질에 가까운 지식은 수명이 오래가고 파편적인 지식일수록 수명이 짧다.
개발자가 공부하는 것은 본질적인 능력을 키우는 것이다. 프로그래밍의 본질은 문제의 해결이다.
실력을 이미 알고 있는 지식의 총량이라고 착각해서는 안된다. 진짜 실력은 임기응변, 주변에 흔들리지 않는 집중력이고 해결해야 하는 문제가 무엇인지 알아채는 감각이다.
이론과 실습을 같이 해라
코드리뷰를 받아라
오픈 소스 프로젝트에 쓸만한 기여할 거리를 찾아 풀 리퀘스트를 날린다면 해당 프로젝트의 메인테이너들에게 코드 리뷰를 받을 수 있다. 또한 개인적으로 작성한 코드도 코드 리뷰를 받을 수 있다.
표준 라이브러리/API 읽어라
코드를 읽으며 왜 그렇게 했는 지 생각해라
세상은 변한다
소프트웨어는 녹슨다.
코드는 적게 짤수록 좋고 코드를 안짜도 되면 더 좋다.
다른 사람의 말을 의심해라
학습시간의 80%는 본질적인 것에 투자하고 나머지 20%를 프레임워크나 라이브러리에 투자해라
[책추천]
실용주의 프로그래머
클린 코드
클린 코더
도메인 주도 설계
테스트 주도 개발로 배우는 객체 지향 설계와 실천
지속적인 통합
[정리]
마이크로서비스 프레임워크(X) -> 진보적인 아키텍처(O)
새로운 프로그래밍 언어(X) -> 클린 코드, 디자인 패턴, DDD(O)
LeSS, SAFe(X) -> 린(Lean) 개발 원칙들
Hystrix(X) -> 장애 극복 패턴(O)
도커(X) -> 지속적인 배포(O)
앵귤러(X) -> Web, Http, REST(O)
개발자도 기획이나 디자인에 대한 공부를 해야한다.
실력을 향상시키는 것은 반복하는 것이다.
'숙련도'를 만들기
이미 회사 밖이니까.. 취업하고 보자 ㅎㅎ
백엔드 관련 내용이 많긴한데.. 이직 이야기 나중에보자
따라하기 - 샘프코드 겟 - 참고하면서 내꺼 만들기
챌린지 설정 - 공부 - 챌린지 수행 - 피드백 - 휴식
를 6~12개월 간격으로 반복
본문에 꿀팁들이 많다 가서 읽는 것 추천
가서 읽기
공부 시작하고나서 읽자
엄청나게 디테일한 내용들이 많다!!
공부하면서 참고하기 좋을 듯
1.스타트업-스탁옵션
2.창업
3.큰회사에서 실력있는 개발자로 인정 받기
1,2 는 제네럴리스트 3은 스페셜리스트
회사입장에서는 개인이 만든 제품보다 팀이 만든 제품을 좋아한다.
코딩하는 것 자체만 좋아하면 개발자로 빠르게 성장할 수 없다.
도구의 사용법을 제대로 익히기 - 언어나 프레임워크를 분석하자. (책, 인터넷 강의)
프레임 워크가 오픈 소스라면 소스까지 봐라.
오픈소스에 참여도 해봐라. 깊이가 중요
ex 리액트
경력 꼬일 짓은 하지 말아라.
가장 더디게 성장한다.
자기PR은 노력하는 모습을 보이는 것도 포함된다.
ex)기술 블로그, 유튜브
시작 및 탐색 단계 - 기간: 3~6개월
시작은 따라하기 식의 동영상이나 책을 활용해 프로그래밍으로 무엇인가 만들어본다. 이후 스스로의 힘으로 만들고 싶은 소프트웨어를 구현해볼 것을 추천한다.
최소 한 개의 프로그래밍 언어를 활용해 변수, 배열, 조건문, 반복문, 함수 정도는 자유롭게 사용할 수 있는 수준이 되어야한다.
교육 기관 활용 단계 - 6개월 전후
프로그래밍 학습에 대한 방향성을 잡고 같이 학습할 동료를 만드는 목적으로 활용해도 좋다.
심화 학습 단계 - 6개월 전후
추가적으로 학습해야 할 내용이 정말 많다는 것을 느끼는 시점이다. 교육 과정을 마친 대부분의 사람들이 이 시점에 취업을 한다. 하지만 이 상태에서 취업할 경우 성장과 배움보다 열악한 환경때문에 학습에 투자할 시간이 없을 가능성이 높다.
이 기간은 앞의 교육 과정에서 소화하지 못했던 내용을 보완하고 온전히 나의 것으로 체득하는 시간으로 만들어야한다. 즉, 지금까지 다향한 부분에 대해 얕은 학습을 했다면 이 단계부터는 특정 기술 하나하나에 대해 깊이 있는 학습을 해야한다. (본문 링크 참고)
취업 단계 - 심화 학습 단계와 병행
회사에 지원하고 면접을 보면 현장에서 요구하는 역량이 무엇인지, 내가 부족한 역량이 무엇인지 파악할 수 있다. 따라서 심화 학습 단계를 진행하다가 학습에 대한 동기 부여가 떨어지는 시점이나 약간의 자신감이생기는 시점에 면접에 도전해볼 것을 추천한다.
꿀정보가 너무 많습니다.. 가서 보셔요
너무 좋은 내용들 많음