프로그래밍시 로직을 높이는 기술 [닫기]


21

지난 3 년간 프로그래밍을 시작했습니다. 그러나 나는 그것을 잃어버린 것 같습니다. 매일 코드를 작성하더라도 잘 배울 수 없습니다.

하나의 문제를 해결한다고 가정하면 솔루션에서 솔루션으로 방황하고 다른 솔루션을 구현할 것입니다. 나는 집중할 수 없다. 내가 작성한 코드에 많은 결함이 있습니다. 나는 코드가 두렵지 않다면 왜 상사가 나를 해고 할 것인지 모르겠다. 나는 코딩을 즐기지 만 항상 그런 것은 아니다. 인내심을 높이는 방법?

나는 항상 많은 뛰어난 프로그래머들처럼 어떻게 최고의 코더가되는지 궁금합니다. 나는 이것이 주관적으로 들린다는 것을 알고 있지만 이것은 프로그래머 커뮤니티가 나나 초보자 프로그래머와 같은 평범한 사람들에게 도움이 될 것이라고 생각합니다.


8
이런 식으로 느끼는 것이 일반적입니다. 우리 모두가 컴파일러를 작성하거나 하드 코어 프로그래머가되는 것은 아닙니다. 프로그래밍에 대한 공식적인 교육은 없지만 문제 해결이 중요합니다. 기술이 매우 빠르게 변화함에 따라 물 위에 머무르기가 매우 어렵습니다. 나는 지속적인 개선을 위해 노력합니다. 그것이 나의 목표입니다. 이 직업이 매우 다르다는 것을 이해하고 최선을 다하고 계속 발전하기 위해 노력하십시오. 나는 항상 새로운 것을 배우거나 이해하기 위해 매주 시간이 걸립니다. 그런 태도를 유지하면 나아질 것입니다.
존 레이너

"코드가 두렵습니다. 제 시간에 코드를 완성하지 않으면 상사가 저를 해고 할 것입니다."— 프로그래밍을 즐기고 즐기기에 좋은 환경은 아닙니다.
Paul D. Waite

@ PaulD.Waite 사실, 그것은 좋지는 않지만 매우 일반적입니다.
Pramesh Bajracharya

답변:


12

개인적으로 작은 장애물로 시작하는 것이 좋습니다. 더 작은 청크로 코딩을 시도하고 중간 승리에 더 많이 참여하십시오. 너무 오래 지속되거나 진행률이 표시되지 않으면 압도적이거나 지루한 것처럼 들립니다. 나는 확실히 같은 보트에 있었다고 말할 수 있습니다.

샌드위치를 ​​다루는 것과 같이 생각하십시오. 한 번만 먹으면 전체를 먹지 않아도됩니다. 프로젝트, 작업 등과 같은 작업을 수행하십시오. 현재 레벨에 따라 감독자 / 관리자에게이를 분해하도록 요청할 수 있습니다. 당신이 당신의 자신의 작업 부하에 책임이 있다면, 달성 할 수있는 자신을 위해 작은 결승선을 설정하십시오 (당신이 결코 도달 할 수없는 목표를 설정하지 마십시오. 예를 들어 "정오까지이 클래스를 정의하고 싶습니다", "2 일까지이 인터페이스를 구현하고 싶습니다"등

우리 회사는 프로젝트를 시작하고 발전시키는 것으로 악명이 높아서 90 %에 도달 한 다음, 그 밑에서 깔개를 미끄러 져 "다음 큰 것"으로 넘어갑니다. 나는 아무것도 한 일도하지 않는다는 낙담을 느끼기 시작하고 나를 "펑크"상태로 만든다. 마침내 나는 뒤로 밀고 나가 거의 완성 된 것을 끝내기 전까지는 움직이지 않는다고 말했다. 이것은 나의 존중, 도덕 및 에너지에 대한 경이로움을 주었다 (그러나 고용주에 대해 똑같이 말할 수는 없지만 : shrug :)


7

내 제안은 멘토를 얻는 것입니다.

새 프로젝트를 받으면 진행할 경로를 결정하십시오. 전체 디자인의 모양은 무엇입니까? 어떤 알고리즘을 사용할 예정입니까? 조기에 자주 테스트 할 수 있도록 개발 방법을 계획하고 있습니까? 등등.

이 계획을 멘토에게 가져 가서 그와 이야기하십시오. 그들이 잘못된 길을 가고 있거나 중요한 것을 놓친 것으로 보이면 계획을 수정하고 다시 시도하십시오.

이제 승인 된 계획이 있으므로이를 준수하십시오. 완전히 비참한 일이 발생하지 않는 한 계획을 변경하지 말고 계획을 수정하고 승인을 받고 다시 시작하십시오. 그렇지 않으면, 당신의 계획을 고수하고 당신이 결정한 것을 정확하게하십시오. 구현을 검증하기 위해 정기적으로 멘토와 확인하고 그 과정에서 테스트를 작성하고 사용하십시오.

위의 모든 작업을 성공적으로 수행했다면 프로젝트를 제 시간에 올바르게 제공했을 것입니다. 돌아가서 프로젝트의 일부를 리팩토링하려는 경우 빌드 한 모든 테스트와 빌드 할 프로그램의 사본이 있습니다.

마치 당신이 너무 흩어져 있고 집중력이 부족한 것처럼 들립니다. 아마도 그 부분을 고칠 수 있고 존중하는 사람과 일할 수 있다면 조만간 추적 할 수있을 것입니다.

행운을 빈다


6

나는 당신과 똑같은 입장에 있다고 믿으며 거기에있는 것이 좋지 않습니다. 그것은 때때로 탈진하고 정직하게 우울할 수 있습니다. 그러나, 내가 믿는 것과 마찬가지로,이를 완화하고 더 건강하고 행복한 직장 경력을 쌓기 위해 도울 수있는 일들이 있습니다.

  1. 변화하고 나아지기를 원해야합니다. 이런 느낌이 들지만 능력을 향상시키기 위해 단단한 마당에 넣을 준비가되어 있지 않다면 어떤 도구 / 프로세스도 당신을 위해 할 수있는 사람이 많지 않습니다.

  2. 어떤 사람들은 자연스럽게 훌륭합니다. 어떤 사람들은 훌륭하기 위해 열심히 노력합니다. 대부분의 사람들은 열심히 노력하기 위해 열심히 노력합니다. 당신이 자연스럽게 재능이 없다면 (프로그래밍 또는 다른 방법으로) 열심히 노력하면 거기에 갈 수 있습니다. 노력의 수준은 다양합니다. 불가능은 없습니다.

  3. 당신의 도전을 받아들이고 개선하기 위해 노력하십시오. 내가 본 가장 큰 장애물 중 하나는 자신의 길이 좋지 않다는 것을 두려워하는 사람들이므로 조언을 구하거나 다른 일을하는 방법을 논의하지 마십시오. 따라서 그들은 더 나은 관행을 배우지 않으므로 반복해서 같은 실수를 계속합니다.

  4. 좋은 프로그래머라고 생각하는 사람들에게 조언을 구하십시오. 이야기하고 동료의 조언을 구하는 것을 두려워하지 마십시오. 그러나 항상 조언을 액면으로 취하고 동의하는지 여부를 스스로 결정하십시오. 아무리 훌륭한 사람이더라도 루프를 프로그래밍하는 방법은 항상 많습니다.

  5. 읽고, 읽고, 읽습니다. 뉴스 그룹을 읽으십시오. 이와 같은 사이트에 질문을 게시하십시오 (완료). 잘 들었던 책을 구입하거나 다른 방법으로 권장 사항을 요청하십시오.

  6. 명시 적으로 설계 단계를 작은 단계로 적용한 다음 자신이 한 일을 자랑스럽게 생각합니다. 코딩하는 것을 자랑스럽게 생각한다면 오류와 버그의 여지가 적습니다.

  7. 제안과 도움을 받으려면여십시오. 1 차원 적 사고에 가깝다. 많은 가능성과 방법에 개방하십시오. 모든 것을위한 한 가지 방법이 있다고 생각하는 사람들을 찾으십시오. 4와 조금

  8. 훌륭한 프로그래머가되는 것은 훌륭한 직원이되는 것과 다릅니다. 훌륭한 프로그래머가되기를 원한다면, 정직하게 말하면 결코 거기에 도달하지 못할 수도 있습니다. 그러나 모든 사람은 내가 훌륭한 직원과 사람이라고 믿는 능력을 가지고 있습니다. 그곳에가는 데 도움이 될 수있는 일을하십시오.


좋은 대답입니다. 이러한 요점은 훌륭한 멘토에서 나옵니다. senpai를주의하십시오! _ / _
Pramesh Bajracharya

4

3 년 동안 매일 코딩 한 후에 기본 사항으로 어려움을 겪고 있다면 이것이 올바른 직업이 아닌 가능성을 진지하게 고려해야합니다.

이것은 나쁜 것이 아닙니다. 프로그래밍은 모든 사람을위한 것이 아니며, 자연스럽지 않은 무언가를 자신에게 강요하기보다는 자신이 잘하는 것을 찾아서 그렇게하십시오.

당신의 말이 사실이라면 .. 당신은 결코 "예외적 인 프로그래머" 가 되지 않을 것 입니다. 괜찮습니다. 그냥 받아들이세요.


해설자 : 의견은 설명을 확대하기위한 것이지 확장 된 토론을위한 것이 아닙니다. 자신 만의 해결책이 있다면 답을 남겨 두십시오. 이 답변이 좋다고 생각되면 투표하십시오. 좋은 생각이 들지 않으면 투표하십시오. 이 질문에 대해 다른 사람들과 논의하고 싶다면 chat을 사용하십시오 . 자세한 내용 은 FAQ 를 참조하십시오.

3 년 동안 아무도 "예외적 인"사람이되지 마십시오.
JacquesB

3

자신을 Flow 상태로 전환하십시오. 이것이 내가 훌륭한 개발자라는 것을 알게 된 가장 중요한 요소입니다. 이를 위해서는 자신이 할 수는 있지만 어려운 일에 도전해야합니다. 당신은 그것에 도전하기 위해 올바른 수준의 도전을 찾아야합니다. 더 나아질수록 점차적으로 증가시킬 수 있습니다. 너무 쉬운 일이나 너무 어려운 일을하는 것은 해로울 것입니다.


3

작은 덩어리로 나눕니다.
PB & J 샌드위치 만들기를 사용하여 시연하겠습니다.

전반적인 기본 프로세스를 파악하십시오.

1 - Get Ingredients
2 - Combine Ingredients
3 - Cut Sandwich
4 - Serve Sandwich

그런 다음 각각을 분해하십시오

**Get Ingredients**
1 - Validate/Create PB
1.1 - Validate/Create Jelly
1.2 - Validate/Create Bread
2 - Move PB To assembly area
...

관련된 논리를 완전히 이해할 때까지 분류 프로세스를 반복하십시오.

이렇게하면 이해하기가 더 쉬워 질 것입니다. 일반적인 프로세스를 더 쉽게 구현할 수 있습니다. 코딩을 시작하기 전에 논리가 이미 파악되어 있는지 확인하십시오. 실수하는 것은 괜찮습니다. 구현하기 전에 찾기가 훨씬 쉽습니다.

종종 논리는 프로그래밍에서 가장 어려운 부분입니다. 모두가 그것을 원하지 않는 이유입니다. 논리를 즐기지 않고 UI 디자인을 좋아한다면 더 많은 즐거움을 얻을 수있는 전문 역할이 있습니다. 그것에 아무런 문제가 없습니다. 개인적으로 UI보다 논리를 선호합니다. 원하는 위치를 파악하려는 위치에 로직이없는 경우 다른 역할도 있습니다.


2

나는 전에 이런 종류의 문제를 겪었습니다. 타 버린 바로 직전에 일어 났고 거의 1 년 후에 생산적인 수준에서 프로그램을 할 수 없었습니다.

어쨌든, 그것을 되돌아 보면, 내가 가진 문제는 방향과 관리의 부족이었습니다. 한두 달 동안 무언가를 구현하기 위해 노력한 다음 거의 끝났을 때 갑자기 완전히 다른 방식으로 수행해야합니다. 내가 작성한 모든 코드 줄을 자랑스럽게 생각하기 때문에 이것은 내 자존심에 커다란 타격이었습니다. 또한 경영진은 무엇인가가 어떻게 작동해야하는지에 대해 2 시간 동안 토론 한 후, 며칠 동안 아무 것도 논의하지 않는 것으로 구성되었습니다. 이 중 일부는 물론 내 잘못이었습니다. 이것은 또한 어느 시점에서 작업이 매우 지루 해졌고 코드를 입력하고 실제로 독창적이지 않은 것처럼 느껴졌습니다.

일반 지침:

  1. 지시가 부족하다고 생각되면 그것을 기르십시오. 일이 진행되는 곳에서 더 많은 구조를 위해 상급자에게 물어보십시오
  2. 코드를 항상 삭제해야하는 경우 (리팩토링과 같은 좋은 방법은 아님) 구현하기 전에 더 완벽한 계획이없는 이유에 대해 진지하게 질문하십시오.
  3. 초소형으로 시작하여 "리드"개발자로 활동하고 있다면 분명히 경험하지 못한 경우 자부심을 삼키고 관리자에게 주니어 개발자가 더 많다고 말하십시오.
  4. Tedium은 일반적으로 아무런 작업도 수행되지 않은 것처럼 보이기 때문에 발생합니다. 작은 물린 작업을 수행하고 진행 상황을 추적하십시오. 이것은 당신이 무언가를하고 있다고 느끼는 데 도움이 될 것입니다
  5. 다른 모든 방법이 실패하면 특히 다른 곳에서 지원을 시작하려고 할 수 있습니다. 특히 관리자가 소진을 염려하지 않는 경우

-1

Zendo 와 같은 유도 논리 게임을 찾아 여가 시간에 즐기십시오. 진심으로. 유도 논리는 디버깅의 핵심입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.