전문가처럼 공부하고 싶습니다.

oxoxx의 이미지

저는 인문계로 대학에 들어왔지만, 컴퓨터 공학을 이중전공을 하면서 프로그래밍을 시작했습니다.
컴공과 수업으로는 2학년 수준(객체지향, 회로설계, 자료구조, 이산구조)의 수업들까지 들었습니다.
이번 여름방학동안 안드로이드를 배우면서 직접 음악 재생 앱을 만들어 봤고, 이 앱을 교수님께 조언을 받기 위해 보여드렸습니다.

교수님께서 해주신 말씀은 아래와 같았습니다.
"왜 안드로이드 앱을 코틀린이 아니라 자바로 선택했지?"
"자바 타입에 대한 이해가 부족한 것 같다. char 배열을 사용해야 할 곳에 String을 사용하고 있다."
"해당 레이아웃을 왜 쓰는지 모르는 것 같다. 콘스트레인이 과연 완벽한 레이아웃일까? 행 사이의 병합이 필요하면 반드시 그리드를 사용해야할까?"

이에 대해 저는 스스로 변명을 했습니다.
자바를 선택한 이유는 사실 남들이 다 자바로 개발 하니까 생각도 하지 않고 자바를 선택 했습니다.
다만, 자바 타입이나 레이아웃에 대해서는 책에 있는 개념도 다 읽어 보고, 예제도 다 따라 해보고 그 특징들을 이해하고 사용했다 생각했기에 억울한 마음이 들었습니다.

다음 날 다시 냉정한 마음으로 생각을 해보니까 교수님 말이 맞았다는 생각이 들었습니다.
저는 자바, 안드로이드를 공부했다고 생각했지만 자바, 안드로이드 책과 API를 읽은 것에 불과 했습니다.
기본서들만 읽고 전문가가 되기 바랐던 것은 마치 가장 쉬운 수학 문제만 풀어 놓고, 올림피아드에서 상을 받겠다고 떼쓰는 것과 마찬가지겠지요.

문제는 이렇게 제 잘못을 깨달았지만, 어디서 무엇을 공부해야 할 지 감이 오지 않았습니다.
선배 개발자분들께서는 초보자에서 중급자로 도약 하기 위해서 어디서 어떻게 공부를 하셨는지 조언을 받아 보고 싶습니다.
제가 코더가 아니라 개발자가 되기 위해서 꼭 필요한 과정이란 생각이 듭니다.

세벌의 이미지

kldp에 자주 들러서 다른 분들의 글을 많이 읽어보셔요.
교수님과도 자주 소통하시고, 같은 과목을 듣는 학생들과도 소통 많이 하시고요.
oxoxx 님과 같은 고민을 하는 사람이 많이 있으니 힘 내시고요. :)

chocokeki의 이미지

더 큰 프로젝트를 진행하면 됩니다

응원의 이미지

과제도 아니고 방학동안 혼자 앱 하나 만들었다면, 학부 2년생 수준으로 충분합니다. 교수님 지적하신 사항들은 그다지 중요한 내용들로 보이지 않네요.

전문가도 여러 전문가가 있겠죠. 안드로이드 앱 전문가가 되고 싶다면 안드로이드 문서 열심히 읽고 Google IO 동영상 찾아보고, 무엇보다도 앱을 여러 개 만들어보면 됩니다.

CS 전문가가 되고 싶다면 컴퓨터공학 수업 다 들어야 합니다. 이산수학과 자료구조는 들으셨으니 모든 것의 기초가 될 알고리즘을 들을 기본 준비는 되셨고, 이후 데이터베이스, 운영체제, 데이터통신 및 네트워크 수업 들으면서 최소한 어디에 무엇이 있으니 필요한 때 찾아서 쓸 수 있는 수준으로 공부하시면 됩니다.

마지막으로 교과서에서 배우는 것은 기초적인 것들이니, 더 발전된 내용을 연구한 영어 논문들을 읽고 직접 구현할 수 있으면 CS/CE 전문가의 길로 가는 것이죠. 그러려면 선형대수와 통계를 할 수 있을 때 해두어야 합니다.

익명 사용자의 이미지

힘내세요 어디에나 방법이 있기마련이예요. 실패해도 포기하지 마시고 꼭 꿈이루시기 바람니다!

나그눼의 이미지

http://kr.rellat.com/2017/08/8.html?m=1

때마침 비슷한 주제네요

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.