ithen
533
2016-01-15 11:42:43
13
11381

제가 무슨 개발자가 되고싶은건지 모르겠습니다...


고민이 많아 이렇게 또 글을 올리게되서 죄송합니다.....

저는 성격이 계획과 목표가 세워지지않으면 공부가 손에 잡히질않는 타입이라ㅠ


저는 대학교 2학년을 마쳤고 씨언어 리눅스 네트워크 서버등을 한번 훑어본 수준으로 공부하고

지금은 자바, jsp를 공부하고 있는 단계입니다.


자바가 재밌어서 jsp, spring 수순을 밟고있지만 이 길로 가면 대부분 웹프로그래머가 된다고하네요.

하지만 저는 웹사이트 만들고 그런건 제 타입이아닌거같습니다ㅠ또한 제가 웹프를 잘몰라서그런지몰라도 취업하고 

어느정도 수준에 도달하면 그 웹사이트가 거기서거기일거같고...또한 웹프가 과포화라서 대우도별로안좋다는소리도있고..


저는 지금까지 공부하면서 리눅스에서 c프로그래밍하는것도 재밌었고 자바도 흥미롭게했습니다.

하지만 또 리눅스를 하자니 서버구축하거나 관리하는 직종도 아닌거같습니다ㅠ

그렇다면 제가 하고싶은건 소프트웨어개발인가요?? 코어개발?


잘알지도못하고 배운것도 많이없는 학생입니다ㅠ 선배님들도 제 나이때 같은고민을 하셨던 경험으로 따끔한 조언 부탁드릴께요..예를들면 뭐...소프트웨어개발은 특출나야할수있는거니까 자바를 좋아하면 웹프를 추천한다!

긴 글 읽어주셔서 감사드리고 새해복 많이받으세요~

1
4
  • 댓글 13

  • jeremy2spade
    168
    2016-01-15 12:34:43

    웹프로그램은 소프트웨어가 아닌것처럼 말씀하시네요.

    0
  • 리척
    811
    2016-01-15 12:44:41

    자바는 재미있는데, 웹쪽은 하기 싫고. 그러면 웹쪽은 안하면 됩니다. ㅎㅎ

    굳이 남들 다 한다고 jsp, spring 할 필요 없습니다.

    데이터구조, 알고리즘등을 공부하면서 자바로 문제를 푸는 훈련을 하세요.

    topcoder, careercup, 알고스팟 등등.. 사이트는 많습니다.

    몇 년동안 기초를 튼튼히 하는 훈련을 하면,  같은시간에 프레임웍을 공부하는것보다는 훨씬 더 레벨업된 자신을 볼 수 있을겁니다.

    1
  • itsexy
    364
    2016-01-15 13:10:53

    소프트웨어공학부터 공부하세요 

    소프트웨어의 정의조차 모르면서 소프트웨어를 만들고 싶다는거죠?

    0
  • fender
    14k
    2016-01-15 13:13:13

    웹 관련은 가장 수요가 많고 사람이 많이 몰리는 만큼, 다양한 기술이 생겨나고 발전도 빠른 분야이기도 합니다.

    물론 현업에서 단순한 패턴을 별 기술없이 복사해넣는 방식으로 개발하는 것은 사실이지만, 그건 웹 분야라서 특별히 그렇다기 보단, 그냥 우리나라의 외주 용역 시장이 그런식의 프로젝트를 권장하는 구조이기 때문일 뿐입니다.

    깊이 있는 개발을 원하시는 것이라면 그런 식의 프로젝트를 피해서 기술력 있는 스타트업에 들어가거나 아니면 특화된 도메인 분야를 찾는 수밖에 없는데, 그런 쪽 일자리는 수요가 그렇게 많지 않기 때문에 신입이 바로 도전하기에 쉽지 않을 수도 있습니다.

    그리고 스타트업은 이른바 '풀스택'에 가까운 개발자를 원하는 경우가 많기 때문에 어차피 웹 개발을 알아두는 건 여러모로 도움이 됩니다.

    아예 자바가 아닌 분야를 생각하신다면 별문제이겠지만, 자바 언어로 진로를 찾으실 생각이면 적어도 스프링 프레임워크 정도는 조금 깊이 있게 파악해보시는 것도 괜찮습니다.

    스프링 MVC 코드만 제대로 이해 못하고 복사 붙여넣기 하는 식으로 페이지 찍어내는 건 의미 없는 일이지만, 스프링 자체는 상당히 잘 설계한 프레임워크이고, 스프링이 왜 그런 방식의 개발을 권장하고 왜 API가 그런 모양으로 생겼는지 이해할 수 있다면 어느 분야이든 크게 도움이 되는 지식을 얻을 수 있다고 봅니다.

    리척 님께서 알고리즘이나 데이터 구조를 말씀하셨는데 이는 (추상화나 계층적 측면에서) 낮은 수준의 기초이고, 위에서 이야기한 내용은 높은 수준의 기초 지식입니다. 분야에 따라 어느 쪽에 좀 더 치우칠 수는 있지만 좋은 개발자가 되려면 양 쪽 모두 필요한 기본 지식이라고 생각합니다.

    3
  • ithen
    533
    2016-01-15 13:31:11

    답변주신 모든분들 감사드립니다.

    소프트웨어를 잘모르신다고하셨는데 맞습니다. 정확하 소프트웨어개발자가 무슨일을 하는지 모릅니다.

    제 현 시점에서 정말 소프트웨어공학 공부가 필요하다고 생각되시면 하겠습니다.

    제 질문의 의도는 이렇게 잘모르는데 제 성향과 흥미를 봤을때 어느직종에 맞는건지 몰라서 글을 올리게된것입니다.

    웹쪽, 서버구축은 흥미가없었는데 리눅스 c프로그래밍이나 자바는 재밌었다. 그렇다면 어떤걸 도전해봐라 아니면 리눅스환경 c프로그래밍은 이러한 직종에서많이쓰이는데 이것에대해 더 공부해봐라 아니면 아직 너가 웹프에 대해 뭘 모르고있는거같은데 뭐뭐까지도 할수도있는게 웹프다. 이런 조언을 듣고싶었던건데ㅠ

    다시한번 조언해주시고 답변주신분들 감사합니다!

    0
  • return true
    2k
    2016-01-15 13:38:46

    웹개발도 소프트웨어 개발이죠

    -1
  • ithen
    533
    2016-01-15 14:03:17

    네 웹개발이 소프트웨어개발이 아니라는 말을 하는게아니고 소프트웨어개발중에 웹개발이 제 취향이 아니라는것입니다.

    답변감사드립니다!


    0
  • 초오찌
    5k
    2016-01-15 14:09:10

    저 시기에 웹프로그래머에대해 저런고민하시는거 너무 공감갑니다 ㅎㅎ

    저도 진짜 웹프로그래머는 전문성도 떨어지고 아무나 할 수 있는거라고 생각이 들었거든요.

    음... 다른 분들은 안그러셨나요 ^^;

    아마 웹이란게 우리가 흔히 일상적으로 접하고 편리하게 이용하니까

    그게 쉬워보이는건 당연한거라고 생각합니다.

    그리고 "개인 홈페이지" 만들기 라는 말이 있듯이 누구나 쉽게 웹에 서비스를 올릴수 있는 상황이니

    웹프로머래머에 대한 쉽다는 인식이 생기는것 같아요.

    게시판이라걸 구현하는게 마나 노력이 들어가는것도 모르면 정말 모르니까요. 

    그러니 글쓴이 분이 이런 질문 올리신거 무척 이해가 되네요 ㅎㅎ. 

     

    아무튼 제 개인적인 조언은 프로그래밍은 재미있는데 웹쪽은 흥미가 없다 라고 하시면

    기계제어나, 게임개발쪽도 한번 보세요.

    저도 웹프로그래머 될 생각 없었는데 (님과 같은 생각으로 쉬워보여서) 취업해보니 웹프로그래머로

    살게 되었는데 이쪽도 참 치열합니다. 하지만.. 음.. 요즘도 가끔 후회되기도 해요.

    기계제어나 게임개발할껄 이런 생각이요 ㅎㅎ

    그래도 이쪽 참 재미있습니다.

     

    그리고 웹프로그래머가 할 수 있는 일을 물으셨는데

    요즘 웹세상이기 때문에 일반 컴퓨터 상에서 돌아가는 모든것을 웹상에서도 할 수 있게끔 하는것도

    웹프로그래머의 일입니다.

     

     

     

    0
  • ithen
    533
    2016-01-15 15:28:02

    @초오찌

    답변감사드립니다. 도움이 정말 많이됐습니다. 웹프로그래머에대해서 자세히 알게되고 공감되는 부분이네요.

    @kiete1

    저만 그렇게 느끼는지 모르겠지만 말씀이 상당히 공격적이시네요...자바가 왜재밌고 웹이 왜 제 취향이 아닌지 이유까지 설명해가면서 질문을 올려야하는건가요 흥미를 느끼는것에대해서 정확히 어떻게 설명을드릴까요. 뭘 하고싶은지 정확히 모르는 이상황에서 혼란스러움을 조금이라도 덜어줄수있는 조언이 필요했습니다.

    0
  • ithen
    533
    2016-01-15 16:15:47

    @kitete1

    감사합니다. 제 정곡을 찌르는 답변같네요

    말씀하신대로 진로를 정해달라는 의도는아니고 어떤걸 더해봐라. 이런 길도있다. 이러한 조언을 얻고싶었습니다.

    스스로에게 끊임없는 질문이라...정말 좋은 말씀이신거같네요

    0
  • 생각많은아이
    2
    2016-01-15 17:24:42
    와... jobang님 이 글 읽고 처음 글을 써보는데요 저랑 완전 그냥 생각이 똑같네요.... 저도 계속 자기자신에게 질문을 해보고있습니다... 너무 힘든 그 마음 엄청나게 이해합니다... ㅠ
    0
  • 76진
    103
    2016-01-16 12:56:35

     안녕하세요. 저는 5년 정도 리눅스 기반 셋탑박스 S/W 개발을 했던 사람입니다.

     먼저, 리눅스와 c프로그래밍을 재밌다는 분이 있어서 반갑습니다. 저도 리눅스와 c 프로그래밍이 재미있어서 공부하다보니 임베디드(?) S/W 개발을 하게 되었습니다. 개발 3년차 즈음에 안드로이드 앱 개발을 맡게 되어 처음 Java를 접하게 되었습니다. c프로그래밍만 하다가 Java API를 사용해 보니 신세계 더라구요. c프로그래밍에서는 간단한 기능을 구현하고 싶어도 관련 API가 거의 없어서 일일이 다 구현해 줘야 했습니다.(물론 인터넷에 관련 소스코드는 많습니다.) 그런데, Java에서는 점(.)만 찍으면 왠만한 것들은 다 가능하더라구요. 파일 입출력, 문자열 관리, 클래스 등등 매력적인 요소가 너무 많았습니다. 특히 리팩토링, 테스트 코드, 패턴, 설계의 심오함(객체지향) 등등 이런 개념은 c프로그래밍에서는 거의 없었습니다.(요즘은 좀 있는 것 같더라구요) 이런 것들이 제가 c프로그래머에서 Java 개발자로 넘어오게 되는 결정적인 경험이었습니다. 이때까지 5년 이상이 걸렸습니다. 그때까지 저는 리눅스를 사랑했고, c프로그래밍이 개발의 핵심적인 것이라고 생각했습니다. 뿐만 아니라 웹 개발은 쳐다보지도 않았고 상상하지도 않았습니다. 하지만, 우연한 기회에 웹 개발에 대해서 알게 되고, 알아가게 되면서(특히 Spring을 만나면서) 생각이 완전히 바뀌었습니다. 리눅스+c프로그래밍만큼 아니 더 많은 가능성과 매력을 Java(와 Spring)에서 발견했습니다. 지금은 다시 리눅스+c프로그래머로 살고 싶지 않고, Java 개발자로 살고 싶어서 Java와 Spring 및 웹 개발을 공부하고 있습니다.

     말이 길어졌는데, 저도 웹쪽과 서버 구축은 지난 10년 동안 전혀 흥미가 없었고, 리눅스와 c프로그래밍(+WinAPI, MFC)가 개발의 80% 이상인줄 알았습니다.(저도 학교에서 Java, JSP 수업 들었어요) 하지만 이제는 제가 너무 좁은 시각이었다는 것을 알고 있습니다. 

     그리고, 개발 분야는 생각보다 훨씬 넓습니다. 저도 리눅스+c언어만 생각했는데, 셋탑박스 개발 현장을 보니까 GUI 어플리케이션 + 미들웨어 + 시스템 프로그래밍 + HAL(하드웨어 레이어) + 커널 + 디바이스 드라이버 + 펌웨어까지 엄청 다양한 세부 분야의 기술들과 개발자들이 있었습니다. 셋탑박스 개발만 해도 이정도입니다. 사실은 프로그래밍은 개발의 일부분이고, 코딩 이외의 다양한 스킬이 필요합니다.(c언어니 Java니 하는 코딩은 개발에서 "요구사항 분석 - 설계 – 구현 – 시험 – 통합 – 유지보수" 중에 일부분(구현)에 불과합니다.) 아직 대학생이시니까  앞으로 더 많은 것을 보고 경험하실 거라 생각합니다. 넓게 보고 많은 것을 경험해 보시기 바랍니다.

     개인적으로 추천하자면, 친구들과 프로젝트를 해보시길 바랍니다. 리눅스와 c프로그래밍으로 프로젝트를 해보시고, C++이나 Java 기반 프로젝트(안드로이드 앱 or Spring 기반 웹개발)도 해보시기 바랍니다. 물론 윈도우 프로그래밍(c#)도 해보시면 좋구요.

     다른 사람의 이야기는 "참고"일 뿐입니다. 직접 해 보시고 결정하세요. (아니면 저처럼 됩니다ㅠㅠ)

     요즘 좋은 장비들이 많이 나왔습니다. IoT도 각광받고 있으니 아두이노나 라즈베리 파이 같은거로 리눅스+c프로그래밍 기반 임베디드 프로젝트를 하나 해보시고, 그 프로젝트와 연계해서 웹에서 데이터를 확인하고 활용할 수 있는 웹 프로젝트(웹서버+웹클라이언트)와 이를 모바일(안드로이드 or 아이폰)에서도 활용할 수 있는 프로젝트도 해보시면 좋을 것 같습니다. 

     물론 영어는 잘 할수록 아주 좋고, 파이썬과 빌드 시스템(Makefile or gradle)도 잘 이해 할수록 좋습니다.
    그리고, 한 명이 모든 것을 다 할수 없습니다. 자기 주언어(c or Java)는 정해 놓으시고, 친구들과 역할을 나누어서 해보시기 바랍니다. (개인적으로 c언어가 주언어라도 객체지향 언어(c++ or java) 하나는 사용할 줄 아는 게 좋습니다.)
     
     대학교에서 공부하지 않은 만큼 회사에서 더 많이 공부해야 하는 것을 뼈저리게 느끼면서 같은 후회는 하지 않기를 바라며 적어봅니다 ^^;
    4
  • ithen
    533
    2016-01-18 15:33:02
    감사합니다. 말씀하신대로 여러가지 경험해봐야겠네요 !
    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.