“Nie uczcie się języków programowania, uczcie sie programowania”

mój profesor na studiach

Masz dużo czasu? Czytaj bloga, szukaj w Internecie! Nie masz czasu? Kup go ode mnie!

Moje motto to:

“Ludzie powinni się dzielić wiedzą. Zarabiać na życie powinni na tym co potrafią zrobić, a nie na tym co ukryją przed innymi.”

Dlatego dzielę się wiedzą na blogu, a zarabiam analizując firmy, projektując oprogramowanie i nadzorując jego wdrożenia, oraz ucząc innych tego czego sam się nauczyłem.

Mój blog zawiera prawie tysiąc moich artykułów, a dostęp do nich jest bezpłatny! Stale przybywają kolejne. Te artykuły to wynik stale realizowanych projektów i studiów literaturowych. Część z nich ukazała się w recenzowanych pismach branżowych, niektóre ukazały się także jako publikacje naukowe. Napisałem jedną z najlepiej sprzedających się książek o Analizie Biznesowej w Polsce (HELION po szybkim wyprzedaniu całego nakładu wydał dodruk i podpisał umowę na drugie wydanie). Szkolenia otwarte znajdziecie na stronie eduFuturo.

Typy usług

SzkolenieWarsztatMentoringProjektowaniePodręczniki
Kluczowe cele i zakresCelem jest przekazanie wiedzy. Ma charakter wykładu, na którym omawiana jest teoria i przykłady jej zastosowania. Uczestnicy słuchają i zadają pytania. Ma ustaloną agendę.Celem jest poznanie metod pracy i zastosowań wzorców architektonicznych oraz technik pracy z narzędziami CASE. Ma charakter prezentacji praktycznej “na żywo” powstawania określonego rozwiązania. Uczestnicy słuchają i zadają pytania. Ma ustalony temat/przedmiot.Ma charakter wsparcia samodzielnie pracującego uczącego się. Ma ustalony zakres wiedzy (moje kompetencje)Polega na tym, że ja dostaję materiały źródłowe i ja realizuję analizę i projektuję rozwiązanie. Tu ma miejsce transfer wiedzy, a uczący się występuje w roli obserwatora (który pyta o wszystko). Celem jest zaprojektowanie rozwiązania realizującego określone potrzeby/wymagania.Dostarczenie uporządkowanego zestawu wybranych artykułów z Bloga przygotowanego tematycznie do samodzielnego studiowania (idź do Sklepiku).
Twoja rola Jesteś słuchaczemJesteś aktywnym uczestnikiem i recenzentemJesteś samodzielnym analitykiemJesteś źródłem informacji (dostarczasz materiały źródłowe).Studiować 🙂
Moja rolaProwadzę szkolenieProwadzę warszatRecenzuję Twoje prace, odpowiadam na pytaniaRealizuję analizę i projektowanie. To jest Oferta Usługowa.Odpowiadam na pytania w ramach mentoringu i konsultacji ad-hoc
Klasyfikacja typów zajęć. Wszystkie są poparte bogatą literaturą źródłową.

Mentoring

UWAGA! Do każdego opłaconego zamówienia wystawiany jest paragon, faktury są wystawiane na żądanie, w ciągu 7 dni, dla zamówień o wartości powyżej 450zł (lub 100GBP).

Dla jednej osobyZamów
Mikro-konsultacje (krótka odpowiedź, porada na czacie lub krótki email)£10
jednorazowe zapytanie pisemnie, załączony materiał maks. jedna strona A4, po zaksięgowaniu wpłaty dostaniesz konto to komunikacji,£40
miesięczne wsparcie, korespondencja pisemna (asynchroniczna) na platformie workflow (po zaksięgowaniu wpłaty dostaniesz konto to komunikacji), opłata to ekwiwalent ok. 10 zgłoszonych problemów (opracowanie odpowiedzi zajmuje mi ok. 10-15 minut, odpowiadam w ciągu mak. 3 dni), nie wykorzystany czas nie jest rekompensowany, po wykorzystaniu czasu przed upływem miesiąca, można wykupić kolejny,£100
konsultacje/prezentacja on-line (termin spotkania potwierdzany po zaksięgowaniu wpłaty), jedna godzina (można łączyć)£95
(UWAGA! Pisemnie odpowiadam w ciągu doby, na kolejne pytanie po trzech dniach, spotkanie on-line są umawiane nie później niż w ciągu tygodnia)
Dla zespołówZamów
Jednodniowe zamknięte warsztaty konwersatorium dla grupy. Tematyka dowolna, wybrana z zakresu moich kompetencji. Do tej pory najczęściej były to:
– projektowanie logiki aplikacji na bazie wzorów z użyciem notacji UML
– DDD (Domain Driven Design),
– architektura heksagonalna, MVC (hexagonal architecture),
– komponenty/mikroserwisy i Saga (High-level Design),
– Boundary-Control-Entity (odpowiedzialność klas), łańcuch odpowiedzialności, repozytorium (repository),
– koperta (envelope), (Low-level Design)
£700

Jeżeli szukasz gotowych rozwiązań zajrzyj na stronę: Sklepik.

Szkolenia i warsztaty

Szkolenia podzieliłem na trzy odrębne części:

Organizowane na życzenie:

Plan szkleń otwartych na stronie eduFuturo.pl.

Ankieta Przedszkoleniowa (prosze przesłać – każdy uczestnik – odpowiedzi na poniższe pytania):

1. Jaka jest Pani/Pana rola w projektach i czego Pani/Pan oczekuje po tym kursie?
2. Czy posiada Pani/Pan doświadczenie z zakresu analizy i modelowania, jeżeli tak, to jakie?
3. Jakie analizy prowadzi Pani/Pan w ramach swoich obowiązków w firmie?
4. Co sprawia Pani/Panu największy kłopot podczas analiz?

Czego uczę? Inżynierii systemów, rozwiązywania problemów i modelowania!

Zapoznaj się z tym czego oczekuje teraz rynek pracy w IT, a potem wybierz swoją drogę rozwoju. Programowanie dzisiaj to projektowanie rozwiązań:

Programming is not solely about constructing software?programming is about designing software.

Ozkaya, I. (2020). Building Blocks of Software Design. IEEE Software, 37(2), 3?5. https://doi.org/10.1109/MS.2019.2959049

Mnogość ról spotykanych w branży IT (analityk wymagań, analityk biznesowy, analityk biznesowo-systemowy, analityki systemowy, …) to efekt braku wypracowanego systemu ról w tej branży, jednak ostatnie lata pokazują, że świat klasycznej inżynierii wchłania inżynierię oprogramowania i tu także krystalizuje się klasyczny podział: inżynier i deweloper a całość zaś opiera sie na dwóch kluczowych fazach: analizy i projektowania oraz implementacji. Każdy etap podlega ewaluacji (testujemy modele potem testujemy produkt).

Czym jest inżynieria? To rozwiązywanie problemów i projektowanie ich rozwiązań. Co na to obecny świat?

WHAT DOES A SOFTWARE ENGINEER DO?
Software engineers evaluate client or company needs in conjunction with those of the user and methodically conceptualize a systematic solution.
WHAT DOES A PROGRAMMER DO?
Programmers write code and debug errors in programs and software based on instructions from software engineers. They are involved in a single stage within the development lifecycle and concentrate on one component at a time.

https://builtin.com/recruiting/software-engineer-vs-programmer

Software engineer jest często nazywany Solution Architect:

Architekt rozwiązań jest ekspertem odpowiedzialnym za kierowanie architekturą rozwiązań – praktyką projektowania, opisywania i zarządzania inżynierią techniczną w celu rozwiązywania konkretnych problemów biznesowych. Na przykład ochrona danych klientów zgodnie z RODO i innymi przepisami dotyczącymi prywatności jest problemem na poziomie biznesowym. Ta specjalizacja określa, w jaki sposób te wymagania przekładają się na sposób działania danego oprogramowania.

https://www.altexsoft.com/blog/solution-architect-role/

Co na tle całości plasuje się tak:

Wsparcie dla zespołu

Twój pracodawca może u mnie wykupić ryczałtowe wsparcie dla Ciebie i Twojego zespołu, po szczegóły zapraszam na stronę: Oferta.

Opinie

Jarosław to moim zdaniem  jeden z najlepszych analityków biznesowych w kraju. A może i nie tylko :). To wielkie szczęście móc uczyć się od najlepszych. (Technologiczno – Polityczny).

W wyniku szkolenia uzyskałem potwierdzenie że procesy modelowane za pomocą notacji BPMN mogą być z powodzeniem implementowane w enova workflow gdzie edytor procesów jest  z założenia pewnym uogólnieniem notacji. Metody propagowane przez JZ pozwalają na uzyskanie kompletnych i spójnych wymagań oraz modeli procesów w analizowanym systemie. Powinny stać się więc elementem formalnej metodyki wdrożeń oraz naturalnie być stosowane w projektowaniu samego programu. Mogę więc uznać że czas spęczony z Jarosławem Żelińskim na szkoleniu to inwestycja która będzie procentowała (w zasadzie już procentuje). (Co SysML, BPMN i UML robią w jednym garnku?. Grzegorz Jurczak).

… a w ankietach czytam nie raz:

ocena szkolenia

W dniu 2019-06-25 o 21:44, XXX XXX pisze:
Dzięki Pana pomocy przy projekcie udało nam się stworzyć nawet działającą aplikację oraz ostatecznie obronić się na 5. Jeszcze raz serdecznie Panu dziękujemy.

XXX XXX wraz z całym zespołem

(student WIT na kierunku Inżynieria oprogramowania)

Szkolenie zostało ocenione na 5,2/6 (średnia ocen).
Elementy szkolenia szczególnie przydatne w pracy:
? Przykłady z życia dotyczące hermetyzacji i podziału odpowiedzialności klasyfikatorów. Pojawiło się też kilka kontrowersyjnych tematów, które muszę jeszcze przemyśleć i może również wykorzystam w pracy.
? Uświadomienie potrzebnego czasu na projektowanie zanim zacznie się programować kod – czasami bywało tak, że zaczynaliśmy programować nie rozumiejąc ko końca logiki biznesowej.
? Ogromna pigułka wiedzy branżowej.
? Historie ?pomiędzy? ? przykłady z biznesu, realizowanych projektów.
Co byśmy zmienili w szkoleniu:
? “Bliżej kodu” – więcej przykładów wprost z programowania, a nie tylko z abstrakcyjnej warstwy ponad nim.
? Wykorzystanie przykładów z użyciem kodu lub pseudokodu.

(ankieta po szkoleniu dla developera)

Otwarte szkolenia i warsztaty, studia

Szkolenia otwarte, które prowadzę organizuje firma KUDURO SP. Z O.O.. Kalendarz tych szkoleń jest dostępny na stronie eduFuturo. eduFuturo prowadzi także otwarte webinaria, dostępne na kanale YT.

Studia inżynierskie, magisterskie i podyplomowe

Zainteresowanych zapraszam na studia do Wyższej Szkoły Informatyki Stosowanej i Zarządzania, gdzie prowadzę zajęcia (patrz ankiety studentów) z zakresu sformalizowanych metod analizy i projektowania (wykłady i laboratoria z obszaru: metody obiektowe w analizie i projektowaniu, analiza i projektowanie systemów z użyciem notacji UML i BPMN, praca z użyciem narzędzi CASE: Visual-Paradigm,  teoretyczne podstawy budowania systemów i modeli pojęciowych oraz metamodeli).

Zrealizowane szkolenia między innymi dla…

Jarosław Żeliński (fot. Movcamfilms)

Współpracę z trzema liczącymi się uczelniami wyższymi, mam za sobą setki przeszkolonych. W ramach świadczonych usług prowadzę także szkolenia zespołów analityków, pomagam we wdrażaniu najlepszych praktyk analitycznych, wspieram firmy w opracowaniu własnych metodyk prowadzenia projektów analitycznych (narzędzia, wzory dokumentów, procedury). Szkoliły się u mnie zespoły specjalistów firm:

Żabka Polska SA, ALCATEL-LUCENT Polska SA, Altkom Akademia SA, APR System, Ascomp SA, Atmoterm SA, BL Stream Sp. z o.o., Comarch SA, CPI Sp. z o.o., Eko-Park SA, Echo-Investment SA, Galeco Sp. z o.o., Infovide-Matrix SA, ITG SA, KRI SA Wysogotowo, Medicover SA, Pegaz Group, PFRON, PSE SA, QEstate SA, Saint-Gobain Construction, Scott Wilson Ltd, Strict Wise Sp. z o.o., Vectra SA, P4 Play SA., COIG SA, Citi Handlowy SA. Fritolay Poland SA, ABC Data SA, K2 Consulting, CITIBANK, Telekomunikacja Polska SA, Bensari Software, ZETO Kielce, Echo Investment SA, Bank Millenium, BRE Bank, BGŻ SA, PZU SA,  FirstData Polska SA. ORANGE (dawn. TP SA), PZU SA. CAN-PACK SA., Alior Bank SA., TI SKOK, Prokuratura Krajowa, ARiMR, Żandarmeria Wojskowa, PKO BP SA, ARiMR…

Wystąpienia na konferencjach organizowanych między innymi przez:  CPI Sp. z o.o., SW Konferencje, Pureconferences, PureExpo, GigaCon, COMPUTERWORD, IDC. Rzeczpospolita, Puls Biznesu, inne.

Źródła

Hepburn, B., & Andersen, H. (2021). Scientific Method. In E. N. Zalta (Ed.), The Stanford Encyclopedia of Philosophy (Summer 2021). Metaphysics Research Lab, Stanford University. https://plato.stanford.edu/archives/sum2021/entries/scientific-method/
Ozkaya, M. (2023, April 9). Microservices Architecture. Design Microservices Architecture with Patterns & Principles. https://medium.com/design-microservices-architecture-with-patterns/microservices-architecture-2bec9da7d42a
Weiss, M., & Hari, A. (2004). ICDM - an Integrated Methodology for the Conceptual Design of New Systems. https://www.academia.edu/59514794/ICDM_an_Integrated_Methodology_for_the_Conceptual_Design_of_New_Systems
Włodarska-Dziurzyńska, K. (2012). Pojęcie produktu. Nieuczciwe praktyki rynkowe : ocena regulacji, 141–143. https://ruj.uj.edu.pl/server/api/core/bitstreams/c5d331c9-8945-4f12-9a9b-12eddee0be30/content
Mahesh, B. (2019). Machine Learning Algorithms -A Review. https://doi.org/10.21275/ART20203995
Martin, R. C., & Martin, R. C. (2018). Clean architecture: a craftsman’s guide to software structure and design. Prentice Hall.
Foote, B., & Yoder, J. (1997). Big Ball of Mud. Department of Computer Science University of Illinois at Urbana-Champaign 1304 W. Springfield Urbana, IL 61801 USA. https://www.researchgate.net/publication/2938621_Big_Ball_of_Mud
Alencar, F. (2000). Closing the GAP between organizational requirements and object oriented modeling. Journal of the Brazilian Computer Society. https://www.academia.edu/83364710/Closing_the_GAP_between_organizational_requirements_and_object_oriented_modeling
Rumpe, B. (2007). Model-driven development of complex software: A research roadmap. https://www.academia.edu/16456630/Model_driven_development_of_complex_software_A_research_roadmap
Harmon, P. (2010, December 14). What is a Business Process. BPTrends, 8(21), 6. http://www.bptrends.com/publicationfiles/advisor20101214.pdf
Harmon, P., & Garcia, J. (2020). The States of the Business Process Management Process 2020 (No. 2020). BP Trends Associations. www.bptrends.com
Harmon, P. (2016). The State of Business Process Management 2016. BT Trends. https://www.club-bpm.com/Contenido/Estudios/BPT-Survey-Report.pdf
Nanayakkara, C. (2023, July 7). Microservices Patterns: The Saga Pattern. Cloud Native Daily. https://medium.com/cloud-native-daily/microservices-patterns-part-04-saga-pattern-a7f85d8d4aa3
Gaiardelli, S., Spellini, S., Panato, M., Tadiello, C., Lora, M., Cheng, D. S., & Fummi, F. (2024). Enabling Service-oriented Manufacturing through Architectures, Models and Protocols. IEEE Access, 1–1. https://doi.org/10.1109/ACCESS.2024.3385634
Huang, S.-C. (2006). A semiotic view of information: Semiotics as a foundation of LIS research in information behavior. Proceedings of the American Society for Information Science and Technology, 43(1), 1–17. https://doi.org/10.1002/meet.1450430166
Nuninger, L., Verhagen, P., Libourel, T., Opitz, R., Rodier, X., Laplaige, C., Fruchart, C., Leturcq, S., & Levoguer, N. (2020). Linking Theories, Past Practices, and Archaeological Remains of Movement through Ontological Reasoning. Information, 11, 338. https://doi.org/10.3390/info11060338
Machado, I. (2015). Graphic argumentation: diagrammatic modeling in the communication of science. Communicating and Evaluating Science. Covilhã: Labcom, 177–202. https://www.researchgate.net/profile/Catarina_Gracio_De_Moura/publication/324314608_Communicating_and_Evaluating_Science/links/5c6485c8299bf1d14cc4bc1c/Communicating-and-Evaluating-Science.pdf#page=181
Machado, I. (n.d.). Graphic argumentation: diagrammatic modeling in the. Communication and Evaluating Science, 177–202. Retrieved April 11, 2024, from https://www.academia.edu/download/92934020/Irene_Machado.pdf
Jerzy Zajadło. (2019). Banał formuły “dura lex sed lex.” Banał formuły “dura lex sed lex,” R. 64, nr 5, 5–12. https://palestra.pl/pl/czasopismo/wydanie/5-2019/artykul/banal-formuly-dura-lex-sed-lex
Korycka-Zirk, M., & Dobrzeniecki, K. (2018). Logika dla prawników: kompendium i zadania (Wydanie II rozszerzone). Towarzystwo Naukowe Organizacji i Kierownictwa “Dom Organizatora.”
Lewandowski, S., & Malinowski, A. (Eds.). (2002). Logika dla prawników. Wydaw. Prawnicze “LexisNexis.”
Lewandowski, S., Machińska, H., Malinowski, A., Petzel, J., & Pełka, M. (Eds.). (2022). Logika dla prawników (Wydanie 13). Wolters Kluwer.
Lewandowski, S., Malinowski, A., & Petzel, J. (Eds.). (2021). Logika dla prawników: słownik encyklopedyczny (3. wydanie zaktualizowane i rozszerzone). Wolters Kluwer.
Friedman, J. (1997). What’s wrong with Libertarianism. Critical Review, 11(3), 407–467. https://doi.org/10.1080/08913819708443469
Singla, A., Nathan, V. T., & Vageesh, S. (2016). Model Based Self‐Learning System Engineering Approach. INCOSE International Symposium, 26(s1), 219–233. https://doi.org/10.1002/j.2334-5837.2016.00327.x
Sarnowski, J. (2022). Podatki w krajach nordyckich a gospodarka i dobrobyt. Doradztwo Podatkowe - Biuletyn Instytutu Studiów Podatkowych, 5(309), 4–14. https://doi.org/10.5604/01.3001.0015.8617
Ackoff, R. L., Magidson, J., Addison, H. J., & Ehrlich, A. (2007). Projektowanie ideału: kształtowanie przyszłości organizacji. Wyższa Szkoła Przedsiębiorczości i Zarządzania im. Leona Koźmińskiego : Wydawnictwa Akademickie i Profesjonalne. https://repozytorium.kozminski.edu.pl/pl/pub/3442
Babalola, V. (2016). Public Private Partnership: Imperative in Educational Planning and Management for Human Security in Nigerian Schools. 6.
Keet, C. M., & Fillottrani, P. R. (2015). An Analysis and Characterisation of Publicly Available Conceptual Models. In P. Johannesson, M. L. Lee, S. W. Liddle, A. L. Opdahl, & Ó. Pastor López (Eds.), Conceptual Modeling (Vol. 9381, pp. 585–593). Springer International Publishing. https://doi.org/10.1007/978-3-319-25264-3_45
Busboom, A. (2024). Automated generation of OPC UA information models — A review and outlook. Journal of Industrial Information Integration, 100602. https://doi.org/10.1016/j.jii.2024.100602
Michalak. (n.d.). Ustawa o prawie autorskim i prawach pokrewnych. Komentarz. Wolters Kluwer. Retrieved March 23, 2024, from https://www.ksiegarnia.beck.pl/media/product_custom_files/1/8/18361-ustawa-o-prawie-autorskim-i-prawach-pokrewnych-komentarz-arkadiusz-michalak-fragment_1.pdf
Brambilla, M., Cabot, J., & Wimmer, M. (2012). Model-driven software engineering in practice. Morgan & Claypool.
Boisot, M., & Canals, A. (2004). Data, information and knowledge: have we got it right? Journal of Evolutionary Economics, 14(1), 43–67. https://doi.org/10.1007/s00191-003-0181-9
Chen, M., Ebert, D., Hagen, H., Laramee, R. S., Van Liere, R., Ma, K.-L., Ribarsky, W., Scheuermann, G., & Silver, D. (2008). Data, information, and knowledge in visualization. IEEE Computer Graphics and Applications, 29(1), 12–19. https://ieeexplore.ieee.org/abstract/document/4736452/
Floridi, L. (2005). Is Semantic Information Meaningful Data? Philosophy and Phenomenological Research, 70(2), 351–370. https://doi.org/10.1111/j.1933-1592.2005.tb00531.x
Zins, C. (2007). Conceptual approaches for defining data, information, and knowledge. Journal of the American Society for Information Science and Technology, 58(4), 479–493. https://doi.org/10.1002/asi.20508
Foehr, M., Vollmar, J., Calà, A., Leitão, P., Karnouskos, S., & Colombo, A. (2017). Engineering of Next Generation Cyber-Physical Automation System Architectures. In Multi-Disciplinary Engineering for Cyber-Physical Production Systems: Data Models and Software Solutions for Handling Complex Engineering Projects (pp. 185–206). https://doi.org/10.1007/978-3-319-56345-9_8
(N.d.).
(N.d.).
Therefore, use a Repository, the purpose of which is to encapsulate all the logic needed to obtain object references. The domain objects won’t have to deal with the infrastructure to get the needed references to other objects of the domain. They will just get them from the Repository and the model is regaining its clarity and focus. (n.d.).
Therefore, a new concept is necessary to be introduced, one that help to encapsulate the process of complex object creation. This is called Factory. Factories are used to encapsulate the knowledge necessary for object creation, and they are especially useful to create Aggregates. When the root of the Aggregate is created, all the objects contained by the Aggregate are created along with it, and all the invariants are enforced. (n.d.).
Therefore, use Aggregates. An Aggregate is a group of associated objects which are considered as one unit with regard to data changes. The Aggregate is demarcated by a boundary which separates the objects inside from those outside. Each Aggregate has one root. The root is an Entity, and it is the only object accessible from outside. The root can hold references to any of the aggregate objects, and the other objects can hold references to each other, but an outside object can hold references only to the root object. If there are other Entities inside the boundary, the identity of those entities is local, making sense only inside the aggregate. (n.d.).
A Service should not replace the operation which normally belongs on domain objects. We should not create a Service for every operation needed. But when such an operation stands out as an important concept in the domain, a Service should be created for it. There are three characteristics of a Service: 1. The operation performed by the Service refers to a domain concept which does not naturally belong to an Entity or Value Object. 2. The operation performed refers to other objects in the domain. 3. The operation is stateless. (n.d.).
Entities are important objects of a domain model, and they should be considered from the beginning of the modeling process. It is also important to determine if an object needs to be an entity or not, which is discussed in the next pattern. (n.d.).
(N.d.).
(N.d.).
However, when domain-related code is mixed with the other layers, it becomes extremely difficult to see and think about. Superficial changes to the UI can actually change business logic. To change a business rule may require meticulous tracing of UI code, database code, or other program elements. Implementing coherent, model-driven objects becomes impractical. (n.d.).
In an object-oriented program, UI, database, and other support code often gets written directly into the business objects. Additional business logic is embedded in the behavior of UI widgets and database scripts. This some times happens because it is the easiest way to make things work quickly. (n.d.).
Patrz architektura heksagonalna. (n.d.).

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.