공학/에세이

    비전공&고졸 개발자 취업 이야기: 스승을 만나다 (3편)

    C언어를 동경하다 2편 말미에 잠깐 언급했듯이 저는 프론트보단 백엔드가 더 좋았습니다. 그리고 정체 모를 C언어에 대한 동경심 또한 갖고 있었구요. 이러한 상황에서 여차저차 이 핑계 저 핑계를 끌어모아서 잘 다니던 패스트 캠퍼스를 갑작스레 그만두었습니다. 스승을 만나다 사실 무작정 학원을 그만둔 것은 아니었습니다. 비빌 언덕은 있었죠. 이름하야 아빠 찬스. (아빠 찬스라고 해봐야 조국 같은 케이스 아닙니다...) 좀 더 명확히 하자면 아빠의 친구 찬스입니다. 친구분 중에 시스템 엔지니어가 한 분 계십니다. 때마침 그분이 일을 잠깐 쉬고 계셨습니다. 제가 공부하는 걸 도와주겠다고 선심을 써주셔서 넙죽 받아들였습니다. 그렇게 C언어 '코드 카타'가 시작되었습니다. 코드 카타란? 코드 카타(Code kata)..

    비전공&고졸 개발자 취업 이야기: 나도 할 수 있을까 (2편)

    나는 겁쟁이다 '나는 프로그래머가 되어야겠다.' 1편 말미에 저는 위와 같은 막연한 생각을 품었습니다. 하지만 동시에 마음 한편에는 이런 의문이 떠올랐습니다. '내가 과연 할 수 있을까?' 저는 확신이 없었습니다. 까놓고 말해서 저는 이룬 게 아무것도 없었으니까요. 군대를 막 제대한 23살의 저는 스펙이랄 건 하나도 없었습니다. 최종학력 고졸, 자격증 무 (정말 한 개도 없음. 자격증 시험조차 본 적 없음) 그렇다고 어렸을 때부터 프로그래밍을 해온 것도 아니었고요. 무작정 도전하는 건 너무 무모하다는 생각이 들었습니다. 낮고 좁더라도 밟고 갈 작은 계단이 필요했습니다. 그리고 일단은 먹고살아야 했기 때문에 일을 시작했습니다. (군적금은 이미 다 써버렸고, 콩알만한 주식 수익은 술 먹느라... ㅎㅎ;) 생..

    비전공&고졸 개발자 취업 이야기: 늦은 시작 (1편)

    인사말 반갑습니다! 판교에 출몰하는 평범한 개발자 카카루라고 합니다. 글을 시작하기 앞서 안내의 말씀드립니다. 기업이 모셔가는 쩔어주는 개발자가 되는 방법 개발자 취업 꿀팁 대방출 등의 내용은 일절 없습니다. 이 글의 목적은 경험 공유에 있습니다. 프로그래밍으로 먹고사는 건 생각보다 어려운 것 같진 않습니다. 다만 이끌어줄 사람이 없다면, 괜한 곳에 기웃거리느라 시간을 낭비할 가능성이 농후하다고 생각됩니다. (요즘 애들은 학교에서 코딩 기초라도 배웠겠지만, 라떼는 학교에서 한문 배웠기 때문에...) 안심할만한 건 밥 먹고 사는 건 별로 어렵지 않다는 것입니다. 하지만 따시고 맛있는 밥먹는 방법은 어렵네요. 그건 저도 열심히 찾는 중입니다. 한편 '어떠어떠한 것을 공부해라!' '이러저러한 활동을 해라!' ..

    유비쿼터스 컴퓨팅

    목차 사물 인터넷 구성요소 - 센서 - 네트워크 - IoT 인터페이스 철수의 일상 느낀 점 사물 인터넷 구성요소 '사물 인터넷'이란 단어를 들어보신 적이 있나요? 아니면 'IoT'는 어떠신가요? 아마도 들어보셨을 겁니다. 언론에서 4차 산업혁명과 엮어서 많이 언급하니까요. 그런데 사물 인터넷이 대체 무엇일까요? 간단히 말하면 사물 간의 통신입니다. 하지만 십수 년 전부터 인간은 이미 기계로 통신을 하고 있었는데요. 그런데도 불구하고 IoT는 어째서 이토록 주목받는 것일까요? 사실 IoT는 새로운 개념은 아닙니다. 이미 이전에 사물통신이란 개념이 존재했거든요. 사물 통신이란 1) 기계가 정보를 수집하고 2) 통신을 통하여 정보를 상호 교환하는 것입니다. 사물 통신, 즉 M2M(Machine to Machi..

    쉽게 설명하는 '객체지향 프로그래밍(OOP)'

    먼저 뻔한 흐름으로 글을 시작해보겠습니다. 객체 지향 프로그래밍이란 무엇인가? Object Oriented Programming 줄여서 OOP. 객체지향 프로그래밍이란 기존 절차지향 방식에서 벗어나 프로그램을 객체 단위로... 사전적 정의는 틀리지 않았습니다. 하지만 맞는 말인데 멍멍이 소리이기도 합니다. 왜냐구요? 독자는 저 말을 이해할 백그라운드가 없어요. 그러니 멍멍이 소리로 들릴 수밖에요. 처음부터 저거 읽고 객체지향이 뭔지 알면 천재죠. 조금 다른 방식으로 접근해봅시다. 저는 어떤 개념을 이해하는 효과적인 방법이 있다고 생각합니다. 그 방법 중 하나는 해당 개념의 역사를 살피는 것이라 생각합니다. 등장 배경이라든지 부상하게 된 계기 같은 것들이요. 프로그램의 부품화 #include int mai..

    객체지향: 클래스와 인스턴스

    객체지향이란 무엇일까? 객체지향을 한마디로 말하긴 어렵다. 남에게 전달하기란 더 어렵다. 별 수가 없다. 코드를 보면서 익혀나가는 수밖에는. public class example { public static void main(String[] args) { String name = "Smith"; int height = 150; String Gender = "Male"; System.out.println("Hi! My name is " + name); } } 인간을 코드로 표현하려면 어떻게 해야할까? 다 표현할 수는 없다. 추상화는 필수! 추상적으로 표현할래도 인간의 특징은 다양하다. 여러 변수가 필요하다. 이름을 우선 부여해주자. 신장도 필요하고 성별도 필요하다. 추상화 완료? 해피한 것 같다. 그런데 ..