Thoughts

내가 뭘 좋아하는지 몰라서 직업선택을 고민하는 분들을 위한 글

Doohwancho 2019. 6. 25. 19:52

 

 

/* 유튜버 거니의 알고리즘 투게더의 동영상 참고 */

1. MBTI검사를 한다.

2. MBTI에서 나온 결과가 본인의 성향과 맞는지 확인한다.

https://www.youtube.com/watch?v=80vH1ag3nwI

3. 다른 것 같으면, 본인의 성향과 더 맞는 타입이 나올 때 까지 재검사한다.

4. 맞는 것 같다면, 구글에 mbti <본인 mbti성향> 직업 이라고 검색한다.

(ex. 본인은 mbti intj job이라고 검색함)

5. 추천받은 직업들이 대략 30개정도가 있으면, 그중에서 다음의 기준을 적용하여 1차적으로 필터링한다.

5-1. 현실성 있는가? 

a. intj 추천직업중 하나는 항공우주공학자인데, 현실적으로 수학이랑 물리공부 다시하고 대학 다시가고 석박사 하기 힘드니까 제외

b. 사진사도 할 수는 있는데, 벌이가 쉬원치 않아서 부모로부터 금전적 독립이 힘듬. 게다가 카메라 장비마련부터 스튜디오 세팅 및 대여의 진입장벽도 높음

5-2. 끌리는가?

a. 회계사가 아무리 본인 적성에 맞다지만, 본인이 회계과목을 들었을 때, 하기 싫었다면 회계사는 제외

6. 1차 필터링 후, 30개 직업들이 10개 내외로 간추려졌으면, 나머지 직업들 중, 본인이 생각하기에 재밌어 보이거나 멋있어 보이는 것을 기준으로 1번부터 10번까지 순위를 매긴다. 기준이 막연해도 상관없다. 단순히 끌리기만 한다면.

출처 : https://www.youtube.com/watch?v=wIvH7e9D8rQ

사람들은 직업 찾을때 우리가 잘하는것과 하고싶은것 두가지 고려함. 여기서 하나 더 고려해야 하는건 과연 내 스킬이 팔릴것인가. 그 세개의 중심점이 괜찮은 일.

출처 : https://www.youtube.com/watch?v=4VJGSIgi6DE

7-1. 순위를 매겼으면, 1등,2등,3등의 직업을 가진 사람들이 어떻게 하루일과를 보내는지 유투브에 쳐본다.

7-2. 그럼 가장 책임감을 필요로 하지 않으며(공짜로 배울 수 있으며) 되도록이면 난이도가 가장 초보자 위주이고, 다른사람들과 할 수 있는 활동(동호회라던가, 학원이라던가, 국가 지원 n개월짜리 교육이라던가)에 나가서 직접 경험해 보면서 이 직업이 할만한지 피부로 느껴봄

7-3. 그러면서 해당 분야에서 직업 경험이 있는 사람이 해당 학원이나 교육과정에 존재한다면, 그 분을 멘토삼아 실무+해당 직종자의 삶에 대해 궁금한점 물어봄. 일종의 멘토-멘티 관계를 맺음. 

8. 이제 본격적으로 그 직업을 가지기 위러  필요한 커리큘럼을 검색한다. 예를들어, 프로그래머가 되고 싶다면, 컴퓨터 공학과를 나오는 것이 유리하다. 그러면 본인이 아는 대학중 가장 높은 대학 안의 컴공과 커리큘럼을 검색한다. 예를들어, 스탠포드 대학교의 컴공과 커리큘럼을 검색하려면, stanford computer science curriculum 라고 구글에 치면 된다. 그러면 다음의 검색결과가 나온다.

https://cs.stanford.edu/degrees/ug/Requirements.shtml#Core 

이곳에서는 졸업을 위한 필수과목이 무엇인지 알 수 있고, 그 과목을 들으면 어떤 내용을 배울 수 있는지 알 수 있다. 예를들어, 아래는 필수과목들을 보며, 필수과목의 이름은 밑줄, 필수과목들을 수강할 때 들을 수 있는 내용들을 볼드체로 표시했다.


Core

Systems

Programming Abstractions (CS106B or CS106X)

CS106B introduces students to many fundamental programming concepts and software engineering techniques using the C++ language. The course will focus on teaching problem solving skills, basic abstract data typs, and recursion. General topics include basic programming methodology (engineering, modularity, documentation), data abstractions (stacks, queues, linked lists, hash tables, binary trees, generics and templates), recursion (procedural, backtracking), searching and sorting, and basic algorithmic analysis (including Big-Oh notation).

Computer Organization and Systems (CS107)

CS107 transitions students to programming on the UNIX machines. The class aims to teach students about computer systems from the hardware up to the source code. Topics include machine architecture (registers, I/O, basic assembly language), memory models (pointers, memory allocation, data representation), compilation (stack frames, semantic analysis, code generation), and basic concurrency (threading, synchronization).

Principles of Computer Systems (CS110)

CS110 will teach students how to build larger scale systems using operating system and networking abstractions. Topics include processes (threading, context switching, interprocess communication), storage and file management (file systems, virtual memory), networking (sockets, TCP/IP, routing) and an understanding of distributed systems.

Theory

Mathematical Foundations of Computing (CS103)

CS103 will give students the mathematical foundations necessary for computer science. Topics include proof techniques and logic; induction; sets, functions, and relations; an introduction to formal languages; DFA's, NFA's, and Regular Expressions; Context-Free Grammars, Turing Machines, and NP-Completeness.

Introduction to Probability for Computer Scientists (CS109)

CS109 is designed to teach students material from probability and statistics that is relevant to computer science. Topics include combinatorics; probability theory; conditional probability, and independence; probability distributions; Bayes' Theorem, Law of Large Numbers, and the Central Limit Theorem; and hypothesis testing. The class will also cover applications of probability including hashing, data analysis, inference, and an introduction to machine learning.

Data Structures and Algorithms (CS161)

CS161 gives students the tools to analyze data structures and algorithms. Students will also practice devising algorithms for various problems. These skills are widely applicable and alumni report CS161 as one of the most useful classes at Stanford. Topics include algorithmic complexity analysis (Big Oh, Omega, Theta), recurrence relations, and the master method. In addition, students learn about several different classes of algorithms and data structures, including randomized algorithms, divide and conquer strategies, greedy algorithms, hasing, heaps, graph algorithms, and search algorithms (including blind and A* search).


그럼 이러한 개념들을, google검색이나 youtube로 공부하고, 정리한 내용을 개인 블로그에 아카이브 한다. 만약 필수수강과목들의 개념을 모두 공부했다면, 스탠포드의 2018-2019 가을학기의 모든 컴공과목 리스트가 있는 https://cs.stanford.edu/courses/schedules/2018-2019.autumn.php 이곳에서, 본인이 관심있어하는 응용분야, 예를들어 머신러닝이라면, 관련된 과목을 클릭하면, 해당 과목에서 무엇을 배울 수 있는지 친절하게 알려준다.

 

9. 대학 커리큘럼으로 베이스가 다져졌다면, 실전에서 쓰는 기술을 배우고 포트폴리오를 준비한다.

잡코리아에 가서 본인이 희망하는 직무를 다음과 같이 검색한다.

본인이 희망하는 회사의 자격사항 & 우대사항을 본다.

회사마다 조금씩 다르겠지만, 여러 회사들이 요구하는 사항 중, 공통분모를 찾는다. 잘 보면, java와 spring이 겹친다. 그러면 java와 spring부터 끝내고, 그 다음 부가적인 것들을 준비한다.