마토의 세상

MATO WORLD

비전공자 10

코딩테스트를 준비하는 초보자/비전공자들을 위한 팁 !

우선 저에 대해 소개하자면, 문과출신 비전공자/Java 백엔드개발자 지망/국비지원학원수료/코테준비 및 합격 경험없음 입니다. 먼저, 최근 2021 카카오와 라인의 코딩테스트를 경험 삼아 준비해보면서 느꼈던 점에 대해 이야기해보고자 합니다. 비전공자가 자료구조나 알고리즘 지식없이 코딩테스트에 합격할 수 있는가? 코딩테스트는 어떻게 준비하는 것인가? 코딩테스트를 준비하기 위해 나 스스로 해야하는 것은 무엇인가? 이와 관련된 자료나 답변은 어디에서 얻을 수 있을까? 이렇듯 수많은 고민을 하게 되었고, 이에 대한 해결책에 대해 많은 조사와 비교분석을 하게 되었습니다. 따라서, 저와 같은 고민을 가지고 계신 분들께 제가 준비하게 된 방식과 그 이유를 공유하고자 합니다 ! 한 분에게라도 공감이 될 수 있었으면 좋겠..

컴퓨터 개론 03. 프로그래머의 세계 이해하기 (3)

트렌드를 읽는 능력 01. 프로그래밍은 선택의 연속 보통 같은 용도의 프레임워크, 라이브러리가 존재하는데 배우는 데 걸리는 시간을 고려하여 하나를 선택한다. 이후 변경하기 어렵기 때문에 신중히 선택할 필요가 있다. 프로그래밍 언어 자체에 대한 선택은 더더욱 돌이키기 어렵다. 어떤 디자인 패턴, 스타일 가이드를 사용할 지 선택하기도 한다. * Tip : 유행은 쉽게 변하기도 한다. 주의할 것 !! 02. 트렌드를 읽는 방법 1 - 활발한 기술 프로그래밍에서 트렌드를 판단하는 기준 1 : 얼마나 활발한지 ( 많은 사용자가 있는지 ) 선순환 구조 파악 ! 좋은 언어/프레임워크/기술 -> 사람들이 많이 사용 -> 커뮤니티 혹은 좋은 자료 및 문서 많이 생성 -> 더 많은 사람이 기술 사용 활발한 기술은 stac..

컴퓨터 개론 03. 프로그래머의 세계 이해하기 (2)

프로그래밍의 다양한 분야 05. 테스트 프로세스 - 버그 : 프로그램에서 잘못 실행되는 동작, 의도하지 않은 에러 -> 버그를 방지하기 위해 테스트 필요 기본적인 테스트는 개발자가 직접 개발하면서 함께 진행함. 테스트는 대부분 똑같은 작업을 반복하는 것이기 때문에 자동화 테스트 도구를 활용하거나 테스트 코드를 개발하여 직접 자동화하기도 한다. 하지만 개발 단계에서 발견하지 못하거나 특정 상황에서만 발생하는 문제가 있기 때문에 추가 테스트를 하거나 테스트 부서가 따로 있기도 하다. * Tip : 신뢰성이 중요한 제품일 경우 추가 테스트를 여러 차례 거치기도 한다. 테스트 과정에서 버그를 발견하면 담당 개발자에게 알려 고쳐야 한다. - 버그를 처리할 때 고려해야 할 점 1. 얼마나 시급한지 2. 담당자가 누..

컴퓨터 개론 03. 프로그래머의 세계 이해하기

프로그래밍의 다양한 분야 01. 컴퓨터 사이언스의 기본기 프로그래밍의 여러 영역은 서로 꽤 밀접하게 연결되어 있다. 비슷한 접근방식과 문제해결방식을 공유하고 있기 때문에 하나의 언어를 마스터한 사람은 다른 언어나 새로운 기술에도 빠르게 적응할 수 있다. 따라서 기본기가 제일 중요하다. - 컴퓨터 사이언스의 기본 1. 객체 지향 프로그래밍 2. 알고리즘 3. 자료구조 * Tip : 이 세 과목은 필수 ! - 추가적으로 알아야 할 기본 과목들 1. 컴퓨터 구조 2. 운영체제 3. 컴파일러 4. 웹개발 5. 데이터베이스 6. 네트워크 * Tip : 이 과목들도 기본적인 이해를 갖출 것 ! 깊이 있는 공부는 필요에 따라 선택적으로 하면 된다. 02. 소프트웨어 공학 개발자가 프로그램을 만들 때 하는 일 = 협업..

컴퓨터 개론 02. 프로그래밍 언어 이해하기 (3)

프로그래밍 언어 제대로 사용하기 03. 스타일 가이드 활용하기 가독성 높은 코드 1. 상황에 맞는 적절한 코멘트 작성하기 -> Comment 코멘트 : 사람에게만 전하는 메시지 2. 변수명 잘 짓기 -> 전체적인 코드의 흐름 안에서 충분히 구체적이고 간결한 이름 => 사람마다 주관적이다. 따라서 일정한 규칙이 있어야 더 깔끔하게 작성할 수 있다. 예 ) 코멘트 : 코드 옆 or 코드 위 예 ) 변수명 : math score(X) math_score (snake 표기법) mathScore (pascal 표기법) MathScore (camel 표기법) 이를 위해 각 언어마다 스타일 가이드가 존재한다. - 스타일 가이드 검색하는 방법 : 언어이름 + 스타일가이드 예 ) 파이썬 스타일가이드 - https://w..

컴퓨터 개론 02. 프로그래밍 언어 이해하기 (2)

프로그래밍 언어 Overview 01. 프로그래밍 언어의 스펙트럼 - 프로그래밍 언어 분류 기준 1. 객체 지향 지원 여부 2. 변수의 자료형 지정 여부 3. 컴퓨터와 인간 중 어디에 더 가까운지 (상대적 개념 - 스펙트럼-> 추상화의 정도) - 프로그래밍 언어를 추상화가 얼마나 되었는지를 기준으로 분류하는 방법 기준 : 변수의 자료형 컴퓨터에 가까운 언어 = 저수준 언어 (Low-Level Programming Language) -> 사람이 이해하기 어렵다. -> 1, "1"을 다르게 인식 (자료형을 필요로 한다) -> 추상화가 적게 되어있는 언어 사람에 가까운 언어 = 고수준 언어 (High-Level Programming Language) -> 컴퓨터가 이해하기 어렵다. -> 1, "1"을 동일하게..

컴퓨터 개론 02. 프로그래밍 언어 이해하기

프로그래밍 언어 살펴보기 : 프로그래밍 언어의 공통적인 원리 01. 프로그래밍을 배우기 힘든 이유 - 제대로 공부하기 쉽지 않은 프로그래밍 언어가 다양하여 방향성을 정하지 못하고 비전공자가 판단하기 매우 어려움. 어떤 분야에 관심이 있는지, 성향은 어떤지에 따라 언어를 다르게 선택하게 됨. 03. 프로그래밍 언어란? (+ 컴퓨터, 프로그램, 프로그래밍 언어에 대한 이해 필요) - 컴퓨터 : 일을 대신 해주는 기계 - 프로그램 : 컴퓨터가 어떤 일을 해야 할 지 알려주는 설명서 -> 컴퓨터가 할 일이 프로그래밍 언어로 적혀 있는 것 - 프로그래밍 언어 : 설명서를 쓰기 위해 사용하는 언어 05. 프로그래밍 언어의 발전 컴퓨터가 발전하면서 프로그래밍 언어도 함께 발전하였음. 예 ) 컴퓨터 -> 파스칼 계산기..

2021 문과 비전공자 코딩 국비지원학원 수료 후기

#프롤로그 시작하기에 앞서 저에 대한 소개를 간단히 하자면, 24살 어학/경영학 전공 졸업유예생 완벽한 문과생인 비전공자입니다 ! 현재는 백엔드 개발자를 목표로 준비중인 취준생 입니다🤓 6개월 간 (2021.01.18~2021.06.30) 국비지원 교육을 받고 현재는 수료한 상태입니다. 지금은 즐거운 마음으로 취준을 시작했습니다.. (아직까지는?) 아래 과정을 읽으면서 궁금하신 점들은 댓글로 남겨주세요 ! 에필로그에 FAQ 있으니까 꼭꼭꼭 읽어주세요 !!!♥️ #1 국비 지원 학원을 선택한 이유 우선 제가 코딩 공부의 시작을 국비지원학원에서 하게 된 이유는 1. 졸업예정자로 내일배움카드를 발급 받을 수 있다. 2. 내가 직접 투자해야 하는 비용이 적다(없다). 3. 체계적인 수업 방식을 따를 수 있다. ..

컴퓨터개론 01. 프로그래밍 시작하기 in Python (2)

프로그래밍 기본 개념 03. 추상화 개요 - 추상화 (Abstraction) 정의 : 복잡한 내용은 숨기고 주요 기능에만 신경쓰자 장점 : 내부적인 복잡한 원리를 모르더라도 편리하게 사용할 수 있다 - 추상화의 3단계 1. 변수(Variable) : 값을 저장하는 것 -> 복잡한 값을 외울 것 없이 변수를 사용하여 그 값을 활용할 수 있음. 2. 함수(Function) : 명령을 저장하는 것 -> 복잡한 원리를 모르더라도 함수를 사용하여 원하는 값을 출력할 수 있음. 3. 객체(Object) 04. 변수 - 변수를 사용하는 목적 1. 복잡한 값을 편리하게 활용하기 위해 2. 실수로 값을 잘못 입력하는 것을 방지하기 위해 3. 코드를 보고 쉽게 이해할 수 있도록 하기 위해 4. 값이 변경되었을 때, 여러 ..

컴퓨터개론 01. 프로그래밍 시작하기 in Python

기록 : 오전 10시 15분 ~ 11시 랜선스터디 참여 # 프롤로그 - 파이썬으로 프로그래밍을 하기 전 준비해야할 프로그램 1. Python interpreter : 우리가 쓴 파이썬 코드를 컴퓨터가 이해할 수 있도록 머신 코드로 번역해주는 프로그램. 2. PyCharm : 코딩을 더욱 편하게 할 수 있도록 도와주는 서빗프로그램들을 통합하여 제공해주는 올인원 솔루션으로, 통합개발환경(IDE)라고 한다. - MAC에서 파이참 설치하기 #1 파이참 사용해보기 - 프로젝트 내 파일 생성 1) 디렉토리 오른쪽 마우스 클릭 -> new -> file -> 파일명.py 로 저장 2) 디렉토리 오른쪽 마우스 클릭 -> new -> pythonfile -> 파일명 으로 저장(.py 필요없음) - print(~) - 파..