Wątek przeniesiony 2019-02-11 01:35 z przez somekind.

Co powinienem przestudiować?

Odpowiedz Nowy wątek
2019-02-10 21:37
4

Witajcie,
od lipca z przerwami szukam jak dobić się do wiedzy, której szukam i ciągle nic, nadal Komputer wydaje mi się wielką magią.Było też kilka wątków moich na ten temat, ale chciałbym tutaj domknąć temat na amen.

Swoją przygodę w IT rozpocząłem z myślą o dobrej pracy i w ogóle pracy. Skończyło się na tym, że rąbię całymi dniami nawet nie czyste CRUDy, bo jakaś logika też jest, ale to jest po prostu walenie JSONami w koło Macieju od klienta do serwera i nazad... Używam Springa, Angulara, Mongo, baz SQL i różnych pierdół lepszych bądź gorszych, które co rusz się pojawiają nowe.
Dwa lata temu o tej porze, nawet w snach nie marzyłem o takiej pracy i, że w ogóle będę tworzył software.

I wiecie co? Jestem nie szczęśliwy i nie mogę zaznać spokoju... Nie uważam się za programistę, tylko za gościa, który zna wierzchołek góry lodowej i SKŁADA (a nie programuje) gotowe komponenty. Przecież ludzie... to nie jest programowanie (przynajmniej tak myślę).
W pracy otaczają mnie ludzie, którzy są seniorami i robią to samo, składają Springa z jakąś DB, do tego Angular albo inny Android i heja.

Fajnie by było zrobić coś innego, zrozumieć jak działa komputer i popisać coś niskopoziomowego.
Zacząłem się uczyć ANSI C i jak na razie przerobiłem z 200 stron, ale to są rzeczy w sumie które już nam na wylot z modyfikacjami ewentualnie, także muszę jeszcze poczekać.

Miał ktoś tak? Może ktoś powiedzieć jak ugasił w sobie to pragnienie wiedzy?
Czuję się jak koleś, który wkręca skrzynię biegów do samochodu i tyle, a chciałbym pójść do kopalni, wykopać rudę żelaza, przetopić ją, wykuć elementy i samemu je składać.

To wszystko jest zabawne, bo wielkie korporacje jak ORACLE, Microsoft czy Google dają nam jakiś gotowy software, bez którego by nie było niczego, a Polskie programowanie z dnia na dzień przestałoby istnieć, bo pewnie ludzi zdolnych do napisania OS, maszyny wirtualnej czy środowiska GUI jest (strzelam) 5% spośród wszystkich programistów, a reszta to mili ludzie, którzy podniecają się Clean Code i SOLIDEM (nie ujmuję tym zagadnieniom).

Chciałem zacząć coś niskopoziomowego działającego na sieci. Potrzebuję jakiś projekt, który przeczytam i nagle mnie olśni, jak od Hello Worlda przejdę do własnego programu, którym skomunikuję dwa komputery przez sieć. Od zera, from scratch, bez żadnych bibliotek, wszystko sam.
Wziąłem cURL, ale trochę jednak za trudno dla mnie na ten moment. Też nie chcę już się zanudzać jakimiś biznesowymi aplikacjami.

Może https://github.com/madnight/nano sobie zacznę analizować, tak lubię się uczyć.

Wskazówki, sugestie?

A może myślicie, żeby odpuścić, bo i tak świat ITmagii nie odsłoni nigdy przede mną tajemnicy? :D

Pozostało 580 znaków

2019-02-10 22:29
0
NeutrinoSpinZero napisał(a):

@mr_jaro: dzięki za wypowiedź, ale mi nie do końca chodzi o to, żeby jakieś REST API w Assemblerze pisać. Chciałbym tylko zrozumieć to wszystko, jak od bitów i bajtów można zagrać w Wiedźmina. Chcę tylko wiedzieć jak.

A mógłbyś wyjaśnić czy masz jakieś wykształcenie kierunkowe? Bo nie wiem czy dobrze rozumiem - czy chcesz się nauczyć czegoś bardziej niskopoziomowego, czy raczej brakuje ci wiedzy przekrojowej tj. architektury komputerów, konstrukcji i sposobu działania systemu operacyjnego, modelu działania sieci czy tego typu rzeczy?

Dokładnie to drugie. Brak wiedzy przekrojowej. - NeutrinoSpinZero 2019-02-10 22:31

Pozostało 580 znaków

2019-02-10 22:30
0

@superdurszlak: Twoje zdanie ostatnie jest mistrzowskie :D Jutro też mnie czeka rozmowa, gdzie biznes chce mieć przycisk do blokady konta użytkownika ^^ I płomienne 3godzinne dyskusje :D
A mógłbym sobie coś poczytać i poprogramować.

ja się szybko nauczyłem, że jeśli nie ma do przedyskutowania czegoś, co faktycznie może być warte do przedyskutowania lub robimy demo, a nie mam nic do pokazania (prawie nigdy nie mam, bo robię backend) to i tak biorę laptopa jak wszyscy i coś tam dłubię :) - superdurszlak 2019-02-10 22:43

Pozostało 580 znaków

2019-02-10 22:52
2

To może idź na informatykę? ;) Pięć lat wiedzy ciężko będzie upchnąć w weekendowe czytanie w wygodnym fotelu. Choć jak sobie przypomnę ile zbędnych rzeczy się uczyłem no to może wyjdą ze 3 lata. A na serio, jeśli czujesz taką potrzebę, to warto zainteresować się klasycznymi pozycjami w tym zakresie:

Richard Stevens - Programowanie zastosowań sieciowych w systemie Unix
Silberschatz A., Peterson J. P., Galvin P.B., Podstawy systemów operacyjnych

Szczególnie ta druga może ci sporo wyjaśnić; zasady działania systemu wielowątkowego, synchronizacja procesów, zarządzanie pamięcią.
Są to dość stare książki, ale jak pisałeś - brak ci podstaw. A Unix to podstawa wszystkiego ;)

Co do architektury komputerów, to w tej chwili nic mi nie przychodzi do głowy. My się uczyliśmy ze slajdów ;) a architekturę procesora 8086 to wałkowaliśmy przez pół semestru.
Może znajdziesz jakieś materiały uczelniane, które przynajmniej naświetlą jakiś obraz - Google: architektura komputerów skrypt

jakie 5? inżynier 3,5, magister... na co to komu potrzebne - mr_jaro 2019-02-10 22:59
@mr_jaro: to jest straszne, bo większość postów jakie widziałem tutaj mające wzmiankę dot. długości studiów używa 5 lat - rodzice mają takie ambicje czy o co chodzi? :D - WeiXiao 2019-02-10 23:03
Tyle, że najciekawsze rzeczy były na ostatnich latach studiów. :) - robertos7778 2019-02-10 23:05
@robertos7778: to dlaczego nie krok dalej? Ph.D? - WeiXiao 2019-02-10 23:06
@WeiXiao nie wiem, wszyscy se magistrów robią. Ja zrobiłem inżyniera i powiedziałem sobie "nigdy więcej studiów" - mr_jaro 2019-02-10 23:08
@WeiXiao mnie generalnie uczelnia nudziła (poza nielicznymi wyjątkami, którymi chciałem się zajmować). A doktorat zwykle kończy się pozostaniem na uczelni, a to nigdy nie wydawało mi się sensowne; tam trzeba być specyficznym typem człowieka, to nie dla mnie. - robertos7778 2019-02-10 23:23

Pozostało 580 znaków

2019-02-10 23:09
0

@robertos7778: Dzięki za drogowskaz. O to mi właśnie chodziło. Tą książkę o systemach operacyjnych już kiedyś trochę ruszyłem, ale odpuściłem, a później wrócę, bo właśnie zacząłem czytać Programming Ground Up.
Tyle, że w sumie rozumiem podstawy, wydaje mi się to całkiem logiczne i poukładane, jak są przetwarzane dane z pamięci przez CPU itd. Jak działa kod maszynowy, assembly language i języki wysokopoziomowe, ale nie jestem w stanie pojąć tego przeskoku od zer i jedynek do np. pięknych aplikacji w JS, albo gier w C++.

Pozostało 580 znaków

2019-02-10 23:11
0
NeutrinoSpinZero napisał(a): ale nie jestem w stanie pojąć tego przeskoku od zer i jedynek do np. pięknych aplikacji w JS, albo gier w C++.

Pod spodem to nadal 0 i 1, tylko my widzimy je w wyższej abstrakcji. js to inne podejście bo ma pośrednika w postaci interpretera.

Pozostało 580 znaków

2019-02-10 23:30
0

Bo to nie jest żaden nagły przeskok, od kodu binarnego do efektu wizualnego to długa droga i wiele warstw pośredniczących. Jeśli chcesz zdobywać wiedzę tego typu, to po poznaniu zasad działania systemu operacyjnego przejdź np. do urządzeń wyjściowych. Tj. jak jest tworzony obraz, w jaki sposób są zapisywane kolory, jakie są techniki generowania obrazu 2D i 3D, w jaki sposób system operacyjny wspiera programistę w tworzeniu komponentów wizualnych. Do tego urządzenia wejścia, szczególnie dyski i macierze RAID, wady i minusy ;) dysków magnetycznych i SSD, rodzaje interfejsów itd.

entropia informacji, digitial signal processing itp - bylo walkowane xD - lambdadziara 2019-02-10 23:37

Pozostało 580 znaków

2019-02-11 12:24
1

Obczaj From NAND to Tetris na Courserze (chyba jest też strona).

Pozostało 580 znaków

2019-02-11 12:25
1
NeutrinoSpinZero napisał(a):

Zacząłem się uczyć ANSI C i jak na razie przerobiłem z 200 stron, ale to są rzeczy w sumie które już nam na wylot z modyfikacjami ewentualnie, także muszę jeszcze poczekać.
...
Chciałem zacząć coś niskopoziomowego działającego na sieci. Potrzebuję jakiś projekt, który przeczytam i nagle mnie olśni, jak od Hello Worlda przejdę do własnego programu, którym skomunikuję dwa komputery przez sieć. Od zera, from scratch, bez żadnych bibliotek, wszystko sam.

Temat gniazd sieciowych to jest dokładnie to czego chcesz ;)

Pozostało 580 znaków

2019-02-11 14:53
0

Dzięki wszystkim, proszę o jeszcze więcej propozycji do mojej TODO listy, mam nadzieję, że po nitce do kłębka dojdę do wiedzy.
@Cr0w chyba już mi kiedyś polecałeś ten kurs. Jednak odstraszyło mnie to, że używają swojego własnego języka i robione jest wszystko na symulatorach, a chciałbym coś realnego.

@robertos7778 to jest tak, że ja nie chcę aż tak do metalu schodzić. Interesuje mnie to: używam Swinga, JavaFX czy GTK+ albo QT. Dwoma linijkami kodu wywołuję sobie czarne okienko, po którym mogę sobie 'malować'. I właśnie chciałbym się dowiedzieć, co musi się zadziać, żeby takie okienko wywołać, co tam właściwie się wydarza. Chciałem sprawdzić, jak to jest zrobione w GTK+ np. ale nie rozumiem jeszcze ANSI C zbyt dobrze no i zmienne w tych niskopoziomowych projektach to jakiś dramat, w ogóle nie wiadomo o co chodzi.

Pozostało 580 znaków

2019-02-11 17:37
0

nikt nie zabrania olac ich jezyka i napisac po "bozemy" z pomoca bardziej profesjonalych tool'ie...

bardziej lista, ale od geohot'a:
https://github.com/geohot/fromthetransistor

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0