안녕 난 감자야!
요즘 많은 사람들이 코딩붐으로 국비지원학원으로 많이 배워서 실무로 나가는데 실무에 나와서도 멘탈이 많이 흔들릴 것 같아
배울건 왜 이렇게 많은것 같은지.. 배울게 끝이 없잖아
실무에서 보면 나랑 똑같이 새로 배우는데 배우는 속도가 무슨... 사기캐같고 그렇게도 느껴질거야
사람마다 지능차이도 있겠지만 대부분 그런사람들은 기본기가 탄탄할 확률이 높아
대학교에서는 기본위주로 알려주는데 배우는 입장에서는 지루하기 딱이없어
나도 대학다닐 때 이런 커리큘럼말고 실무위주로 알려주면 안되나... 생각도 했었는데 지금 생각해보면 굉장히 좋은 커리큘럼이였어
프로그래머가 가져야할 가장 기본은 논리력과 프로그래밍 언어인건 다들 알고있을거야
요즘 많은 곳에서 파이썬이나 자바스크립트로 가르치는데 이건 뭐 입문자들은 너무 어려우면 흥미를 잃을 수도 있으니까 문제가 없다고 생각해
하지만 이것만 배워서 컴퓨터를 이해하기는 조금 어려워.
C언어와 같은 상대적으로 저급언어를 배우는게 중요해(어셈블리어는 특수한 분야 아니면 쓰이는게 적으니까 패스)
C언어는 사용자가 메모리관리를 해야하는데 이때문에 포인터를 배우고 자연스럽게 메모리에 대한 이해력이 생겨.
C언어를 배웠으면 자료구조를 배우는게 좋다고 생각해.
자료구조는 말 그대로 데이터구조를 말하는 건데 프로그램을 만들 때 머릿속으로 일단 생각하고 데이터를 어떻게 다룰까를 생각할텐데
흔히 쓰이는 자료구조를 알고 있으면 "이런 상황엔 스택이 효율적이겠어" 라는 판단을 하게돼.
프로그램은 데이터가 어떻게 구성돼있는지에 따라서 달라져. 일반 변수를 처리하는 로직과 배열을 처리하는 로직은 당연히 다르겠지?
자료구조를 배웠으면 알고리즘을 배울거야. 이건 거의 같이 배우게되는데 데이터 구조가 달라지니까 사용하는 알고리즘도 달라져.
알고리즘도 배우면 프로그래밍을할 때 "이런 상황엔 이런 알고리즘을 사용하면 되겠네" 하는 아이디어와 이를 응용할 수 있어.
이제 컴퓨터 구조, 운영체제, 컴파일러같은 개념적인것도 공부하면 좋아.
실제로 너가 만든 C프로그램이 어떻게 컴파일이돼서 기계어가 되는지, 이것들이 어떻게 프로세스가되고 운영체제는 이걸 어떻게 관리하는지, 프로세스 메모리는 어떻게 구성되고 어떻게 관리되는지, CPU는 어떻게 프로세스들을 처리하는지 개념이 생길거야.
난 이런 지식이 실무에서 엄청 도움됐었어. Python Django로 일할 때였는데 운영체제의 동기화 문제가 발생했는데 동기화문제는 항상 에러가 나오는게 아니라 찾기도 힘든데 예전에 배웠던게 생각해서 의심했더니 그런 문제였더라고.
암튼 개념적인 부분도 굉장히 중요하다고 생각해!
시스템 프로그래밍같은 경우도 OS의 시스템콜을 사용하다보니 공부하면 프로그래밍 실력이 많이늘거야.
시스템 프로그래밍은 보통 리눅스로 학습할텐데 옛날 커널을 이용해서 오버플로우도 하면서 해킹도하고 재미있을거야!
나는 이때 리눅스에 미쳐서 GUI도 이쁘게 막 바꾸고 커맨드도 많이 공부했었어.
이정도로 배웠으면 기본은 충분하다고봐.
언어는 C언어 밖에 몰라도 다른 나머지 언어는 쉽게 배울 수 있을거야.
교수님들이 항상 하시던 말씀이 있었는데
"프로그래밍 언어는 도구일 뿐이다" 이거였어.
그때는 이해가 안갔어. 언어 하나도 하나의 학문? 처럼 느껴졌는데 시간이 지나보니까 진짜 새로운 언어배우는건 일도 아닌것 처럼 느껴져.
나는 객체지향을 공부하려고 C에서 C++넘어갔었어. 당연히 같은 계열의 언어니까 굉장히 비슷하고 쉽게 배울수 있었어.
그리고 JAVA와 C#을 배워보니까 언어는 전부 거기서 거기더라고.
너가 가고싶은 분야가 있을거야.
웹이면 프론트엔드,백엔드
게임이면 클라,서버
모바일이면 안드/iOS나 하이브리드
윈도우 개발자면 Qt나 MFC배우겠지
그럼 해당 분야에 프레임워크를 배우면돼.
근데 지금까지 프레임워크는 안만져봤으니 좀 어색할거야.
나도 Django를 배울때 전체적인 구조가 머리에 안그려져서 익숙해지는데 시간이 걸리더라구.
이거는 프레임워크로 포트폴리오 만들면서 연습하고, 취업해서 꾸준히 만지다보면 전문가 수준이 되니까 걱정하지마.
회사 입장에서도 학원에서 특정 프레임워크만 배워서 그것만 할 줄 아는 사람보다 기본기 탄탄해서 성장 상한치가 높은 사람을 원할거야.
특정 프레임워크만 배워서 오면 얼마든지 시장에 많이 있잖아?
학생때 재미로 유니티 배울때는 아무것도 모르는 수준으로 프로젝트를 마쳤는데 진짜 게임을 만들겠다는 마음을 먹으니까
이게 또 쉽게 배워지더라고.
실무에가면 개발하느라 바쁘니까 기본기 쌓을 시간이 많이 부족할거야.
실무에선 Git이나 디자인패턴이나 개발방식같은 스킬에도 투자해야하잖아.
학생이면 시간이 많으니까 기본기에 많이 투자하길 바라고 실무자라도 시간내서 기본기 익혀두는걸 추천할게!
한줄 정리 - 기본기!!!!
나랑 생각 다른친구들 댓글환영~
좋은글인데 지금은 카카오 코테가 핫하다 묻힐듯
진짜 묻혔네ㅋㅋ
네트워크랑db도 기본 아님?
기본이긴한데 프론트엔드갈 사람한테 공부하라고하기엔 너무 많아서 ㅋㅋ
AI 도움받고 코딩공부해라..
클로드, 코덱스, 제미나이, 커서 등 오티티 70% 싸게 가능함 (코딩용 ai)
https://goodmanytips.com/plus/
그리고 자료구조 c,파이썬,자바 다 다른 책으로 돼 있던데
언어는 상관없지 자료구조 개념이 중요한거니까
시스템 프로그래밍은 굳이 배울 필요는 없을 듯
분야에 따라 다르긴할텐데 웹같은 경우는 크게 연관성은 없을것 같아
안해봐서그럼
그냥 순수 공학 코딩기계가 목표라면 ㄱㅊ
ㅆㅅㅌㅊ - dc App
좋은글 개추 - dc App
이렇게 보니까 취업 준비 과정자체가 살인적이긴 하네
정성추
지금 따로 강의 끊어서 공부하는데 물어봐도 됨?
교육과정이 (이산수학, 미적분, 확률통계, 선형대수학), (데이터베이스, 자료구조, 알고리즘, 객체지향 프로그래밍, 컴퓨터 네트워킹, 운영체제) 이렇게 구성되어있는데, 이거 열심히 공부하면 어느정도 기초는 다지는거임?
응 그것만 열심히해도 기초는 충분할거야!
개좋은글이네 겜클라인데 이거 ㄹㅇ임 - dc App
좋은 글이네요 실무 가면 기본기 쌓을 시간 없으니 미리 해두라는 말 좋습니다 잘 읽었어용
좋은글 감사합니다
좋은 글 감사해용!! :)
좋은 글 감사합니다. 현재 c언어를 처음 배우고 있는 학생입니다. c언어를 배운 뒤 자료구조를 공부하려고 하는데, 따로 추천하시는 강의나 책이 있을까요?
rxapis.com은 당신의 인생을 세이브시켜드립니다.
혹시 C언어 입문서 추천되시나요?
자료구조 구현은 어느정도까지 할 줄 알아야하나요?
님 감자국법임?
좋은 글이긴한데 백엔드쪽은 전혀 아님. 백엔드쪽은 시스템쪽과 무관하게 로우레벨 추상화에 의존하기 때문에 사실상 몰라도됨
c언어를 공부하라면서 어셈블리를 몰라도된다? 모순적인데 c언어가 뭔지 제대로 아는거 맞음? c언어 제대로했으면 c언어의 statement를 어셈블리로 1대 1 mapping 할줄 알아야하는데?