갤을 보니, 처음 프로그래밍 언어를 배워보는 비전공자들이 많은것 같은데,
공지 글만 보고, 제대로 언어도 모르고 사용할 줄 도 모르는 상태에서, 객체지향 같은 담론과 설계철학에 대해 빠져서 허우적대는걸 보고 안타까워서 글 써봄.
1. 자신이 하는 언어의 코딩컨벤션을 검색해봐라.
: 처음 코딩을 하는 입장에서 코딩컨벤션이라는 가이드 라인을 익혀서, 가이드 라인에 맞추는 습관을 연습해 나가는게 좋다. 들여쓰기 라던가, 줄바꿈이라던가 등등 가독성을 고려하고, 클래스나 메서드의 네이밍 규칙이라던가 등등 처음부터 좋은 습관을 들여놓는게 좋음. 기본 언어책에 코딩 컨벤션에 대한 내용이 있다면 그걸 준수해서 되도록 적용하려고 노력해보는 것이 좋다.
추가로, 클린코드 네이밍 규칙 이란걸 검색해서, 아무짝에도 쓸모없는 '나만 아는 변수이름과 메서드명'이 아닌, 변수와 메서드에 대해 이름을 어떻게 지어야 되는가에 대해 고민해 보는것도 좋음.
코딩 컨벤션과 네이밍 규칙이란 것은 어떻게 보면 ㅈ도 없는 틀 끼워맞추는 제약 같지만, '내가 아닌 다른 사람들의 입장'에서 코드를 바라보는 관점을 배우고 생각한다는것이 중요함.
2. 쉬운 알고리즘 문제부터 풀어 보면서 연습을 해라.
: 많은 사람들이 프로그램밍 언어를 배우면서 착각을 함. 자신이 공부한게 '지식'이라고. '안다' 라는 것과 '활용'할 수 있다 라는것을 구분을 못함.
개념을 알고 있다고 활용할 수 있을 거라는 착각을 한다는 말임.
배운 내용을 활용하는것 또한 연습이 필요하다. 이러한 연습을 하는데 좋은게 '백준' 이나 '프로그래머스' 같은 코딩테스트 사이트의 기초 코딩테스트 문제 풀어보는 것임.
엄밀히 말해, 저기서 처음 풀어보는 문제들은 '알고리즘' 보다는 언어 연습이라고 할 수 있음.
나는 개인적으로 백준을 추천함. '단계별로 풀어보기'로 들어가면, 입출력부터 시작해서 단계별로 문제들이 구성되어 있어서,
책에서 hello world 출력을 배웠다면, 입출력 문제를 풀어보고, if문, for문 등을 배웠다면 그 순서에 맞게 단계적으로 연습을 할 수 있음.
문제의 주어진 요구사항과 입력데이터의 처리, 출력을 만들어내고 하는것 또한 처음에는 연습이 필요함. 그리고 그 과정에서 배울수 있는게 분명 존재한다고 생각한다.
아주 간단한 문제라도 처음에는 많은 실패를 하게 될거다. 입력 형식이 맞지 않아서, 출력 형식이 맞지 않아서 또는 내부적으로 잘못된 로직이 존재해서 등등.
니가 작성한 문제풀이 코드에 왜 문제가 발생했는지에 대해 생각해보고 찾아보는 것 또한 연습임.
3. cs해야된다는 강박에 빠져서, 네트워크 운영체제등을 무리해서 병행 하려하지 마라.
: 기본 언어도 제대로 다룰 줄 모르는 상태에서 cs를 하는것 보단 차라리 언어에 집중해서 배우고 이후에 하는게 낫지 않나 싶다.
언어를 배우는 과정에서 시간이 남거나 추가적으로 cs를 공부해 보고 싶다면, '컴퓨터 구조 & 데이터베이스 개론' 정도가 좋다고 생각함.
컴퓨터 구조는 컴퓨터의 기본 동작과 하드웨어 구성요소에 대해 코드가 아닌 이론적으로 접근하기에 병행하기에 좋음.
데이터베이스 개론은 데이터를 저장하는 방식과, 데이터 저장구조 설계, 데이터베이스 질의언어인 sql등은 프로그래밍언어에 종속적이지 않기에 병행하기 좋음.
공지의 DB 책 추천에 있는 'Real my sql'은 ㅈ밥들이 공부할 수준이 아님. 이걸로 공부할 생각 ㄴㄴ.
DB도 그냥 한데 묶어서 DB인거지, DB의 기본 개념과 sql / 데이터베이스 아키텍쳐와 시스템은 서로 다름. 아무것도 모르는 이들이 후자를 이해할 수 없음.
오바해서 이것저걱 그럴듯해 보이는 것들을 쫒지 말고, 천천히 하나하나 배워나가라. 공무원 시험 혹은 자격증 마냥 과목 몇개 정해져 있고 그것만 하면 되는게 아니니까. 앞으로 배워야 할거 나열하면 밑도 끝도 없다.
프로그래밍 언어/자료구조/네트워크/알고리즘/데이터베이스/HTTP/html, css/spring boot/spring security/ReSTful api/docker/클린코드/객체지향/디자인패턴/git/TDD 등등 밑도 끝도 없음.
천천히, 지금 본인이 뭘 해야 될까만 집중해서 하는게 좋음. '이것도 해야되지 않을까? 저것도 해야되지 않을까?' 그거는 지금 하는거나 제대로 하고 나서 그때 고민해라.
추가로, '검색'하는 연습을 해봐라. 책에 써있는 것들이 모든 문제를 해결해줄 거란 착각을 해선 안됨. IDE를 사용함에 있어서도 수많은 예외와 에러메시지가 나올 수 있음. '아이 시발 왜이러지' 하고 두시간 세시간 걸리더라도, 구글에 검색하고 그 문제를 해결하는 것 또한 나 뿐만 아니라 수많은 사람들이 시행착오를 겪어가는 과정임. '왜 안되지 시발거' 하면서 하루를 통채로 날리더라도, 이것저것 검색해보고 스스로 원인을 찾아가고 해결하는것 또한 배워야할 과정이라 생각한다.
ㅇㄱㄹㅇ 책 -> 구글링 -> 공식문서 이렇게 정보 찾는 방법 익혀나가면 언어뿐만 아니라 딴거 공부할때도 좋음
???: 자바 배울까요? 자바 배우면 취업 잘되나요? 자바 이 강의 좋은가요? 국비 커리큘럼인데 어떤가요? 이거 꼭 알아야하나요? 저 코딩에 적성이 있/없는걸까요? 가이드에 있는대로 하면 연봉3000가능한가요? 이거 안되는게 어떻게 해요?
똑똑한 청년.
형님 제 글에 댓글 달았다가 삭제하시지 않으셨나요.. ㅈ같은 질문만 해서 죄손합니다 ㅠ 감사합니다 너무 도움이됐어요 - dc App
국비 부트캠프로 아다 스타트인데 진짜 선택과 집중이 맞는말이다 ... 저거 다 따라갈수도 없고, 선택과 집중을 해도 가랑이가 대가리 정수리부근까지 찢긴다..
제대로가 어느정도의 수준에 도달해야 제대로 공부했다고 할 수 있을까요?
정답이 없는 문제에 정답을 요구하지 말고...일단 그냥 해라.
스스로가 이 질문에 대답할 수 있을 정도가 되면 제대로 공부한거다
맞말 개추
감사합니다.. 공지랑 갤 글들 검색해보면서 압박감에 겁만 쌓여가고 있었는데 조금이나마 안정을 얻어갑니다
Db랑 컴구책 뭐보면 좋나요
와드