Szybkie, efektywne i wydajne programowanie

Szybkie, efektywne i wydajne programowanie
0

Cześć

Pytanie jest takie. Uczę się programowania, piszę sobie różne programiki i aplikacje. Ale to tutaj chyba każdy. Problem jest jednak taki, że bardzo trudno mi się skupić przy pracy. Mam problemy z organizacją czasu. A to woda się zagotowała na kawę, a to telefon zadzwoni, a to kumple obok gadają bo akurat nie mają co robić i opowiadają kawały. Czasem potrafię się złapać na tym, że piszę kod, ale nie wiem po co i dlaczego akurat tu :) Dodatkowo często łapię się też na tym że piszę bardzo wolno, np popijając herbatkę myślę co zaraz napisać, później piszę kilka linijek i znów dumam co dalej... Potrafię przez 10 sekund szukać zakładki w przeglądarce, bo nie pamiętam która to miała być itp... Wiecie - takie pisanie w domowym "zaciszu" sam dla siebie.
Pomaga, jeśli zanim zacznę pisać dokładnie przemyślę co po kolei trzeba napisać, jaka klasa będzie gdzie i jak będą się komunikować z innymi, co udostępniać itp. Ale i tak czasem mam czarne dziury we łbie i muszę się cofać żeby ogarnąć co właściwie chcę zrobić. Poza tym taki stan skupienia jest dość krótki (nie zawsze, ale jednak zwykle).

Pytam bo widziałem w jednej takiej firmie w której miałem okazję odbywać praktyki jak ludzie potrafią zapierdzielać... Mają otwarte po 50 zakładek w przeglądarce, perfekcyjnie wiedzę, która gdzie jest. Znają tysiące skrótów klawiaturowych, komendy w konsoli wpisują tak szybko że znika ona szybciej niż się pojawia :D W między czasie pobierają pocztę, rozpakowują załączniki, umieszczają je od razu tam gdzie trzeba, deployują kod, piszą setki linii kodu nie wiedząc w ogóle na wygląda ich klawiatura itp... Wiecie pewnie o co chodzi :D Ponadto są cały czas na bieżąco z tym o czym rozmawia się właśnie w pokoju :D

Znacie to? :) Macie jakieś skuteczne metody na poprawianie swojej koncentracji i efektywności podczas pracy programistycznej ? :)

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:5 dni
  • Lokalizacja:Rzeszów
2

Proszę okazać oświadczenie, że jest Pan zwolniony z korzystania z wyszukiwarek. Temat omawiany w tym roku co najmniej 3 razy.

Motywacja do roboty poza robotą
Organizacja czasu
Uzależnienie od nowych informacji, wiadomości

W pewnym sensie pokrewne:
Dlaczego programista jest leniwy?

// czy będzie więcej? Szukam dalej
// dobra, nie chce mi się dalej


edytowany 4x, ostatnio: dzek69
0

Zaświadczenie? Czemu? Przytoczone przez Ciebie tematy nie dotyczą przecież tego o co pytam. Nie pytam o problemy z zabraniem się do pracy, odkładaniem zadań na później, lenistwem, przeglądaniem netu bez celu i traceniu czasu na pierdoły. Chodzi o organizację już wykonywanej pracy tak aby była jak najefektywniejsza. Chodzi zatem o koncentrację, skupienie i wykonywanie roboty jak najszybciej i jednocześnie najdokładniej. Czyli tak jak wymagane jest to w pracy zawodowej (o ile rzeczywiście jest).

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:35 minut
  • Postów:6633
0

Jak pracujesz z danymi narzędziami długo, to chyba normalne, że nabierasz wprawy w codziennych czynnościach :)


🕹️⌨️🖥️🖱️🎮
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
1

Na początek polecam nauczenie się pisania bezwzrokowego na klawiaturze. Pisanie bez odrywania wzroku od kodu znacznie polepsza skupienie na kodzie. Musisz się tylko przygotować na to, że początki pisania bezwzrokowego są trudne i zanim dojdziesz do takiej prędkości jaką miałeś pisząc patrząc na klawiaturę zejdzie ze dwa miesiące. No i w tym czasie nie powinieneś pisać patrząc na klawiaturę, bo inaczej ciężko będzie zmienić przyzwyczajenia. Czyli musisz sobie wydzielić 2 m-ce takiego luzu, w którym piszesz niewiele, tak abyś nie musiał się irytować przy pierwszych próbach pisania bezwzrokowego.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
B9
A nie masz czasem tak, że jak tak gapisz się w monitor to robią Ci się takie "suche" oczy? ;D
Wibowit
A jak to poznać? Oczy chyba nigdy nie są suche, no nie? :P Ja tam się nie znam, ale nieraz mam przekrwione oczy, załzawione, etc
B9
Nie wiem, ja to tak czuje że są takie "nie swoje" ;D
aurel
Moderator
  • Rejestracja:prawie 15 lat
  • Ostatnio:2 dni
2

Nie ma co się ciśnieniować... Ja też mam > 50 zakładek pootwieranych (razy 2, bo przynajmniej dwa okienka), ale wiem gdzie co jest nie dlatego, że jestem mega skoncentrowana, tylko dlatego, że są favicony na zakładkach, więc po obrazkach widać... (no i rozdzielam sobie po okienkach mniej więcej tematycznie).
Skróty klawiaturowe jeden zna takie, a inny zna inne... Jak ja się zdziwiłam, po dwóch latach programowania w VS, że inni programiści w firmie nie używają ctrl+shift+B... Jak coś często robię, to sobie sprawdzam jaki to ma skrót, no i z racji tego, że potem często powtarzam - zapamiętuję.

A jak się program kompiluje/czekam na koniec procesu/generuje się strona i długo to trwa, to w ramach uciekania przed nudą zastanawiam się: "czy jest jakaś pierdóła, którą zdążę zrobić zanim się skończy?"
Na siłę nie szukam, bo przede wszystkim: http://www.independentdeveloper.com/archive/2009/03/17/programming-is-like-a-dream

Nie ma nic złego, w długim zastanawianiu się nad tym co się robi. Zdarza mi się, że 3 dni pod rząd nie napiszę niemalże nic, za to całymi dniami myślę. Dzięki temu potem piszę raz.

Czasem potrafię się złapać na tym, że piszę kod, ale nie wiem po co i dlaczego akurat tu :D

Przestań jarać blanty.

kociol21
  • Rejestracja:ponad 14 lat
  • Ostatnio:7 miesięcy
  • Postów:46
0

Może to domena początkujących bo ja też to mam :)
Kiedyś na jakimś blogu (nie znajdę choćby nie wiem co) znalazłem ciekawy wpis na temat różnic między pracą w domu i pracą w 'biurze'. Padła opinia, że praca w domu jest dużo trudniejsza, właśnie z powodu problemów z koncentracją. Ten akurat programista rozwiązał to dosyć radykalnie, zamykał się w specjalnie przygotowanym pokoju w piwnicy, takim mini-biurze i przez 8 godzin dziennie nie wychodził stamtąd, jego rodzina nie miała tam w tym czasie wstępu. Do tego miał poblokowaną sporą część zasobów sieciowych, żeby nie kusiło :)

Programowanie wymaga skupienia, zwłaszcza kiedy nie jest się jeszcze obeznanym z narzędziami, a czasami o to ciężko. Nie każdy uczący się w domu ma wygodną 'kanciapę' tylko dla siebie. Myślę, że prędzej czy później takie obeznanie i wdrożenie się przyjdzie samo, po kilkuset wykonaniach jakiejś czynności zaczyna się ją wykonywać z automatu i nie jest to domeną programowania, tylko ogólnie wszystkiego.
Skróty klawiszowe też przychodzą same. Pierwsze kilka-kilkanaście razy musisz sprawdzić co i jak, potem już nawet się o tym nie myśli, tylko wciska na czuja :)


"Prawdziwa głupota zawsze pokona sztuczną inteligencję."
siararadek
Jezu, serio on sobie taką kanciapę zrobił? Aż bym się dziwnie czuł, w czymś takim programując.
kociol21
Serio :) Tłumaczył to właśnie swoją tendencją do rozpraszania się. Że niby musiał sobie postawić wyraźną linię między 'domem', a 'pracą' żeby nie pozawalać terminów. To był zresztą jeden z tych najbardziej popularnych bloggerów, niestety czytałem to z 1.5 roku temu i nie znajdę już który.
Johnny_Bit
  • Rejestracja:około 22 lata
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Kielce
0
czaki132 napisał(a):

Chodzi zatem o koncentrację, skupienie i wykonywanie roboty jak najszybciej i jednocześnie najdokładniej. Czyli tak jak wymagane jest to w pracy zawodowej (o ile rzeczywiście jest).

Podpowiem Ci, ale tak kompletnie szczerze: ludzie których widziałeś w pracy mieli coś takiego magicznego co się zwie doświadczenie (a do tego przyzwyczajenie).

Dla przykładu moja historia:

  1. dawno dawno temu miałem ja windowsa i jeden monitor - jak miałem więcej jak 3 okna otwarte, to był ból bo gdzie sie odnaleźć.
  2. Jakieś 8 lat temu przerzutka na linuks + wirtualne pulpity w pełni okazałości: jeden monitor, 4 wirtualne pultpity, na każdym 1-2 okienka.
  3. Rozwój technologii i przyzwyczajeń - 2 monitory, 8 wirtualnych pulpitów, na każdym 1 - 4 okienek
  4. praca zawodowa i studia jednocześnie: 2 kompy 3 monitory, na każdym 8 wirtualnych pulpitów. wszystko ogarniam bo sam wiem gdzie co być powinno - gdzie komunikator firmowy, gdzie dokumentacja, gdzie konsola, gdzie logi, gdzie IDE itp itd...
  5. praca zawodowa i rozwój : 2-4 kompów lokalnie, x maszyn zdalnie, 3-8 monitorów lokalnie, na każdą maszynę zdalną 1-9 sesji screena i tak można opisywać a i tak nie odda ekstremum.

bazując na tym udzielam rady: pracuj a osiągniesz to o czym marzysz. ja tam nigdy nie marzyłem aby jednocześnie pisać kod do kilku róznych aplikacji w kilku różnych językach, na bieżąco sprawdzać wyniki każdej z nich, odpowiadać na kilkaset pytań via mail czy komunikator dziennie itp.


HAKGER - 50% Complete
edytowany 1x, ostatnio: Johnny_Bit
Wibowit
cuda tuska normalnie! to jeszcze napisz jak zarobki rosły :P
KA
zarobki rosną w tempie O(n*log(m)), gdzie n to liczba komputerów, a m to liczba monitorów
Demonical Monk
To bardziej skomplikowane, jak już komputery zaczynają wychodzić z pola widzenia to trzeba dorzucić współczynnik lornetek i kijów od szczotki...
Johnny_Bit
true, true - granica to chyba http://www.phoronix.com/scan.php?page=article&item=phoronix_tour_2012&num=1 ale co komu wygodnie ;) Idę o dychę że jak tak dalej pójdzie to w końcu kupie sobie http://www.tykesupply.com/Hex_Monitor_Stands-6_HEX_LCD_Monitor_Stand.html
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)