מעבר מאנדרואיד לPC

יNOT

New member
ניסיתי לערוך את הפוסט שלי אבל הקדמת אותי...

בדיעבד הפרשנות שלי של השרשור הייתה שגוייה, אני פירשתי את השאלה כשאלה רטורית, ולא כהתלבטות עתידית באיזו דרך לבחור, אני הבנתי שהשואלת כבר סיימה את הקורס. רק לאחר ההבהרה שלה באמצע השרשור הבנתי שמדובר בשאלה של מי שעוד נמצא בלבטים. כל התגובות שלי בשרשור הזה מתייחסות לפרשנות המוטעית שלי(כן, גם תגובתי הקודמת אליך), ומשקפות את ההשקפה שלי על הנושא במידה וכבר מדובר באדם שעשה קורס ובעל ידע מסויים שנלמד בקורס. זו גם הסיבה למה מצאתי את הנושא מעניין, הנושא של התלבטות בין קורס לבין תואר לא מעניין אותי - הנושא של מידת הידע שנדרש למי שכבר עשה קורס באנדרואיד ועכשיו מעוניין להתפתח לאפיקים חדשים בג'אווה זה היה מקור העניין שלי.
אני מתנצל על הווכחנות שלי בשרשור הזה, אני עדיין עומד מאחורי דבריי לגבי הסיטואציה כפי שאני הבנתי אותה.
 

יNOT

New member
כן ולא...

ההייליטס מהשרשור הנוכחי:

nocgod:
"פתאום בא אתה - עשית קורס כמה חודשים, למדת קצת לולאות, קצת if-else, וירחם השם אולי אפילו למדתם לא לפחד מלולאת do-while.
ורוצה לקחת מקום לבוגרים האלה.
אחרי האנלוגיה וההסבר - אתה מבין את התשובה?"
http://www.tapuz.co.il/forums2008/viewmsg.aspx?forumid=89&messageid=178057240

"אני אעדיף בוגר בלי ניסיון ממכללה אקדמית מאשר בוגר מכללה X. למה? כי אני יודע שהוא למד, השקיע, קרע את התחת וזה מה שאני רוצה שיעשה אצלי.

לפעמים אנשים בפורומים מנסים להיות עדינים כדי לא לפגוע. ואני לא רוצה לפגוע אני רוצה להגיד את האמת ולא לייצר אשליות. והאמת מכוערת ומגעילה, כי זה לא פייר שלא נותנים צ'אנס לחבר'ה צעירים כרישים ללא תואר, רק כי אין להם את השורה הזאת בקו"ח, אבל זאת המציאות, ואיתה נתמודד."
http://www.tapuz.co.il/forums2008/viewmsg.aspx?forumid=89&messageid=178066978

:BravoMan
"תראה, אם היו מלמדים אותו בקורס מה זו באמת שפת תכנות, מה זו מערכת הפעלה, מה זה API, מה זו סביבת עבודה ומה היחס בין כל אלה, הוא לא היה שואל שאלה כזו.
ברור שמה שלימדו אותו בקורס זה איך לפתוח פרויקט ב-IDE ברירת מחדל, איך לייצר ממשק בסיסי, ואיך לכתוב קצת קוד שיעשה כל מיני דברים.
את המשמעות העמוקה יותר של הכלים האלה, זו שנחוצה כדי שאפשר יהיה להתקדם לכיוון כלשהו, לא הכניסו, וגם ברור למה - אין זמן לזה ב-4 חודשים."
http://www.tapuz.co.il/forums2008/viewmsg.aspx?forumid=89&messageid=178066752

אוליי אני מוציא את הדברים מהקשרם(לכן הקישורים המלאים), אבל לטעמי, ועד כמה שאני איזהר מאמביוולנטיות אחרי הטעות שלי בפירוש השרשור, בחצי מהדרך כן קיימנו את הדיון הזה.
 

BravoMan

Active member
האמת שכן, בהתחלה גם אני הבנתי שהשואלת

כבר עשתה את הקורס.
&nbsp
מכן גם תגובתי.
&nbsp
מה שלא הבנתי עד עכשיו, זה מדוע הנחת שהיית לנו תשובה במקרה כזה, ופשוט סירבנו לשתף אותה?
בעצמך הודית שאינך יודע מה התשובה, אבל למרות שמספר אנשים בפורום בעלי ניסיון אמרו כולם את אותו הדבר "אי אפשר לענות על דבר כזה", התעקשת שיש פה מאין קונספירציה מכוונת.
&nbsp
לו היית מוצא תשובה ומוכיח שאנו טועים, סבבה, יכול להיות. ניסיון לא אומר שתמיד צודקים.
אבל זה לא קרה. אז למה אתה חושב שמסתירים משהו?
 

יNOT

New member
התשובה או תשובות שכן ציפיתי להן ולא עלו...

חוץ מבאופן יותר חלקי מחלקי, זה האמירה שבסופו של דבר לחלק מהמעסיקים(אותו חלק שבכלל ישקול להעסיק מי שבלי תואר), יותר חשוב יכולת מוכחת, להדגים ידע, אם זה כמו שאתה חוזר ואומר כל פעם בפורום , ע"י פרוייקט פתוח כלשהוא או בפרוייקט עצמאי. וזה הכרטיס כניסה לעולם העבודה - וזה הדבר שמשותף גם למי שעם תואר ומי שלא.
וכן הדבר הוזכר שוב, בפחות מפיסקה אבל לא היה ניסיון למקד את השואלת על הדרך, להציע איזו טכנולוגיות קיימות, איזה "מילון מושגים" שלפחות אם היה לה רצון ללמוד בכוחות עצמה יכלה להרחיב את ידיעותיה בלהתבסס על מה רלוונטי לארץ, מה עכשווי ולא סתם חיפוש באינטרנט או חיפוש לפי מילות מפתח של ALLJOBS. (וזה אפילו בלי להתייחס לשאלת התעסוקה, היות וזה לא היה מרכיב בשאלה המקורית)

אני לא חשבתי שהייתה קונספירציה, אני חשבתי שאין מי שבאמת ניסה לענות על השאלה. אני קיבלתי את הרושם כאילו השואלת צריכה "לטפס" על איזה "הר" כדי שהיא תוכל להיות זכאית להכוונה רלוונטית לשאלתה.

לסיכום אוליי זה נובע רק מהיחס הראשוני שלה זכתה השואלת אבל אני קיבלתי רושם שהפורום הוא פורום של סנובים, וזה חלק מהסיבה שבחרתי להגיב כפי שהגבתי.
(וזה אחרי שאני פה כל יום, ורואה את הסבלנות שבה אתה עונה לשאלות...אבל מאידך אני רואה את כל השאר)
 

BravoMan

Active member
והשאלה היא "איך"?

איך אפשר למקד שאלה של אדם שלא מכירים אותו?
איך אפשר להציע מילון מונחים בסיסי, אם לא יודעים על איזה בסיס מדובר?
 

יNOT

New member
דיי מיצינו את הנושא, משני הכיוונים....

אבל היות ושאלת, אני מתאר לעצמי שהיה ניתן לפרק את המינוח הבסיסי שאיתו באה השואלת : "פיתוח JAVA לתוכנות ומערכות בPC" למרכיביו כפי שאכן נעשה בחלק מהתגובות בשרשור.
לדוגמה:
" "מתכנת PC" מה זה אומר בכלל? web? server-side? client-side?"

ומכאן לעמוד על ההבדלים: (אני אקשקש מלל, אבל זה רק לשם הדגמה, אני לא מי שהיה האדם הנכון לתת הסברים...כאילו דה... )

client-side - זה פיתוח צד לקוח, פיתוח באנדרואיד הוא גם פיתוח צד לקוח, פיתוח צד לקוח הכוונה שכל הקוד מקומפל ורץ על חומרה של הלקוח(המשתמש, במקרה של האנדרואיד זה מכשיר האנדרואיד שלו), פיתוח צד לקוח קיים לפיתוח אפליקציות שרצות משורת הפקודה(שורת הפקודה הכוונה לחלון דוס לדוגמה ב - PC), ולפיתוח אפליקציות שרצות בתוך חלון של מערכת הפעלה כמו אפליקציית חלונות שאת מכירה. הפיתוח עצמו לרוב מתבצע ב IDE ______ אבל בניגוד לאנדרואיד שאוליי הורגלת שצריך לפתח רק ב IDE אחד, בפיתוח אפליקציות שלא רצות על מכשיר סלולארי יש לך יותר אפשרויות בחירה.
בעוד באנדרואיד הורגלת לבנות UI בעזרת XML , כשמפתחים אפליקציית GUI בג'אווה , מפתחים בעזרת _______________________
כמו כן, השימוש במינוח "צד לקוח" יכול לבלבל כשמדברים על פיתוח לווב, וזה כי לעיתים בפיתוח לווב צריך מצריך הבנה של javascript ו - css לדוגמה __________ וזה למרות שאת מפתחת בג'אווה.

server-side - פירושו צד שרת, הכוונה שכל הקוד מקומפל אצל השרת, יש לכך יתרונות וחסרונות כדוגמת __________
בפיתוח באנדרואיד ייתכן ואפילו עבדתם עם קוד שהוא צד שרת רק בלי ההבנה איך הוא בנוי. יש מספר מושגים שבטח נתקלת בהם או תיתקלי בהם אם תבחרי ללמוד את הנושא הזה אחד מהם servlet, JSP , ____________________ חשוב להכיר את ההבדלים ביניהם, במיוחד בשביל ________________
אם למדת איך לדבג בפיתוח אנדרואיד, ההכשרה הזו תעזור לך ותהפוך להיות מאוד נחוצה כאשר פתאום תגלי _____________________________________ בזמן עבודה על השרת.
כמובן, יש מספר אופציות לשרתים מבוססי ג'אווה שנפוצים בשימוש בישראל ____________________________________ השאלה היא איזה שימוש את צריכה. מעבר לכך, יש ייתרון בשימוש בשרת מבוסס ג'אווה ____________ אבל חשוב להכיר את החסרונות _____________

web :
למרות שנגענו בנושא הווב כבר בסעיף הקודם, יש מספר פריימוורקס חשובים שלא הזכרנו ____________________________
הפיתוח לווב הוא במגמת עלייה, לרוב בקורסים לומדים בעיקר את ה _________________ ולא מזכירים או לא מרחיבים מספיק על החשיבות של _______________________

ולסיכום חלק מהטכנולוגיות שלמדת להכיר בפיתוח באנרואיד כמו ____________ רלוונטיות גם לפיתוח ____________ בג'אווה, אז אם הפנמת את דרך העבודה עם הטכנולוגיה הזו הדבר ישמש אותך בהמשך דרכך.

אז כפי שניתן להבין יש לפנייך דרך ארוכה, ובמידה והדבר אפשרי אוליי קורס נוסף שכן מכסה את הנושאים האלה, או אפילו בחירה בלעשות תואר אחרי שכבר נחשפת להנאה מהתכנות, אוליי יהיה הדרך המומלצת להתפתח בתחום.

ולמרות שכנראה לא הצלחתי לענות לך על השאלה עשיתי את המיטב לנסות לענות, אני מקווה ש"מילון המושגים" שציינתי יעזור לכוון אותך בדרכך.
אם בכל זאת את חושבת שלא קיבלת מענה לשאלתך, את מוזמנת לשאול שוב לאחר שהקדשת את הזמן להבין התשובה שלי וחקרת לבד את הנושאים שטרחתי למנות עבורך.
 

mess1

New member
ה-מ-ו-ן תודה..!! :))

כן קיבלתי כיוון וקצת יותר הבנה בהבדלי הפיתוח שקיימים..
 

יNOT

New member
בכנות...הפוסט לא היה מכוון אלייך...


כתבתי את הדברים בלשון של פנייה אלייך, אבל זה רק היה לשם הדגמה לצורת תגובה שאחרים יכלו להגיב לנושא.
לא ברור לי על מה את מודה לי, המלל הוא בעיקר זבל, ולא באמת דן בהבדלי הפיתוח,מושגים שכן הזכרתי הוזכרו רק כדי להוסיף עוד נופך לכתוב, זה רק העתק של שורה אחת מאיך שמשתמש אחר פירש את דברייך, זה לא בהכרח ההסבר הנכון, זו רק כוונה.

אבל עכשיו שזה ברור מה נקודת המוצא שלך, ברגע שיש לך לבטים שבחרת לבטא אותם בתפוז מכל המקומות, כנראה שרוב הפורום צודק וקורס הוא לא הפתרון הנכון אם בכוונתך לעסוק בתכנות.
העיסוק בשאלה אם כדאי קורס או לא, אם זה יספיק או לא, כנראה מרמז על העובדה שמי ששואל ייצטרך את ה"אקסטרה" הנוסף של תואר - אחרת השאלה בכלל לא הייתה נשאלת.
 

mess1

New member
התשובות והדיון של כולכם

כן עזר להבין כל מיני דברים שלא חשבתי/לקחתי בחשבון לפני כן, למרות שבאיזשהוא שלב נהייתי מיותרת בדיון.. :)
והתודה בעיקר על הטרחה שלך..
 

BravoMan

Active member
אוי ואבוי...

פה בדיוק נעוצה הבעיה - אולי זה רק אני, אבל אני אוהב לדייק.
במיוחד כשאני עונה לשאלה טכנית.
&nbsp
וגם אם יש משפטים במה שכתבת שאפשר איכשהו לפרש כנכונים, הם עדיין יסבלו מחוסר דיוק רציני.
לכן אני, בחיים לא הייתי יכול לכתוב תשובה כזה.
&nbsp
סתם בתור דוגמה קטנה:
כתבת שבפיתוח ל-Android משתמשים רק ב-IDE אחד, אבל זה לחלוטין לא נכון.
בקורס בוודאי ילמדו שימוש (בסיסי ביותר) ב-IDE אחד, ו-Google ממליצים על אחד ספציפי בתור "רשמי", אבל בפועל ניתן לפתח במגוון סביבות כולל ב-VIM.
&nbsp
למעשה, זו דוגמה בולטת לדבר שמתפספס בקורס בודד, אבל נוגעים בו בתואר: IDE זו לא מקשה קסומה אחת שכותבים לתוכה קוד ויצאת תוכנה.
זה אוסף כלים נפרדים שכל אחד עושה את שלו.
&nbsp
כל הטקסט שלך גם יוצא מנקודת הנחה ש-Java נמצאת בשימוש רחב בפיתוח ל-PC, מה שלא ממש נכון אם אתה מגדיר פיתוח ל-PC כצד לקוח,או ספציפית Web.
יש שימוש ב-Java בפיתוח שרתים עצמם, אבל, גם כאן זה מאוד תלוי תחום.
&nbsp
אז, אם רוצים לדבר על פיתוח מחוץ לעולם ה-Android, צריך לדעת מה המיקוד, כי רוב הסיכויים ש-Java לא תהיה הכלי הנחוץ.
וגם אם זו תהיה Java, לא תהיה ה-Java שילמדו בקורס Android.
&nbsp
חשוב להבין, מה חלק מהשפה, ומה למעשה ספריות ו-API של המערכת, שיהיו שונים דרסטית בסביבות שונות.
והרוב זו לא השפה עצמה...
&nbsp
סתם כקוריוז - לרוב ערכות גרפיות עבור תוכנות שולחן עבודה יש אפשרות לקרוא ממשק מ-XML.
רק שכל ערכה משתמשת ב-XML משלה, עם פקדים משלה בעלי התנהגות משלה.
&nbsp
ואם אנחנו כבר מדברים: הבעיה העיקרית עם קורסים ספציפיים כמו "פיתוח יישומים ל-Android" היא שהידע שהם מקנים הוא כ"כ שטחי שלא ניתן ליישם אותו לתחומים אחרים. זו הסיבה שלרוב אנו לא ממליצים על קורסים כאלה.
&nbsp
אתה מכיר את האמרה: "תן לאדם דג והאכלת אותו ליום, למד אותו לדוג והוא יוכל כל החיים"?
ככה זה - אם אתה מבין מה היא שפת תכנות, מה הוא קומפיילר (אגב, גם יצאת מנקודת הנחה שכל תוכנה מתקמפלת, מה שכמובן לא נכון) מהם עקרונות מערכת הפעלה, מהם API, מה הן ספריות, מה הן ערכות גרפיות וכו'
&nbsp
תוכל יחסית בקלות להשלים פארים בין תחומי פיתוח שונים.
&nbsp
אם לא, התשובה האמתית היחידה שאפשר לתת היא - תיגש לכל תחום כאילו אתה בא מ-0.
 

nocgod

New member
התשובה שציפית לה

היא גם התשובה ששאלו אותי עליה כל כך הרבה חברים שלי שסיימו איתי תואר.
להגיד לך את האמת? אין מתכון למהנדס תוכנה. זה סוג של אומנות. מדעי המחשב זה מדעים, זה מתמטיקה. הנדסת תוכנה זו אומנות.
אתה יכול להיות מצטיין עם ממוצע גבוה ולהיות רחוק שנות אור מלהבין ארכיטקטורה של מערכת וההצדקה אליה. אתה יכול להיות חסר תואר ולהיות חד כתער בדבר הזה.

לפני שהתחלתי לחפש את העבודה הראשונה שלי בתחום ההייטק, למזלי הייתי מאוד ממוקד לגבי מה ארצה לעשות ובאיזה טכנולוגיות אעדיף, אז ליקטתי לי איזה רשימה שקראתי לה "שיעורי בית".
להלן הרשימה: https://docs.google.com/document/d/16a-knvltxMw1cZUufoGryyvjzP45jmLbuEGpsTjwT84/edit?usp=sharing
לא הכי טובה, מאוד שאפתנית, לא אגיד שלמדתי את הכל, לא אשקר ואגיד שאני זוכר את כל מה שלמדתי ממנה - מה שבטוח זה שתוך 20 מסיום הלימודים שלי העברתי כרטיס עבודה.
להגיד לך שמישהו מהחברים שלי שחלקתי איתו את הרשימה הלך בצעדי? לא, לא הלכו, לא למדו ויותר מזה עדיין לא יודעים מה זה restful api כנראה. אז כנראה הדף buzz words לא כזה טוב.

לשואלת המקורית:
אם חפץ בליבך לתכנת - תרימי ספר, תלמדי. ההתחלה תהיה מיאשת, התוצאות יהיו פשוטות, שבורות, ולא יעבדו.
אבל ככה זה כל ההתחלות. תביני בכלל אם זה מעניין אותך מנקודת מבט של הקוד ולא מנקודת מבט רומנטית שמסגלים לעצמם רבים (גם אני עשיתי את זה לפני שהרמתי את The C Programming language by K&R).
אחרי שתלמדי קצת בסיס של שפה כלשהי.
תלמדי קצת איך נראים מבני נתונים מבפנים, איך הם עובדים, ולמה דווקא ככה, מה מיחד כל אחד ואחד מהם - ההבנה הזאת תעזור לך יותר מאוחר להשתמש באבני בסיס האלה כדי לפתור בעיות גדולות.
תלמדי קונספטי מפתח שקיימים בכל תחומי הפיתוח: פיתוח מונחה עצמים OOP, מה הוא, למה, איך.
תבניות עיצוב (design patterns), איזה סוגים, איזה תבניות עיצוב, מה הרעיון מאחורי כל קבוצה של תבניות עיצוב.
עקרונות פיתוח מונחה עצמים (DRY, SOLID, KISS וכד'). ברגע שתשלטי בבסיס הזה טוב, ותלמדי את זה לבד, ותשאלי את השאלות הנכונות -> עולם הפיתוח כולו מונח לרגלייך.
תבחרי את תחום הפיתוח שמעניין אותך ותתמקצעי בו, יחד עם ההתמקצעות תגלי עולם חדש שלם בעולם התוכנה, תגלי שהשפה שבחרת היא הרבה מעבר מעוד שפה, תגלי frameworks שיגרמו לכל מה שעשית עד עכשיו להראות כמו עבודת נמלים. והכי חשוב שברגע שתתמקצעי בתחום תביני: לא משנה איזה שפה בחרת ואיזה framework בחרת, בסופו של יום הקונספטים הם אותו הדבר בכל השפות.

ניסיתי להדגיש כמה מילות שאלה שחייבות ללוות אותך כמתכנתת, תביני למה.
אה - ותזכרי: אדם שלא טועה, לא לומד אף פעם. אז תטעי, זה בריא.
 

יNOT

New member
האמת היא שאני לא יודע...

שלום mess1,
השאלה שלך היא קצת שונה, ובכל זאת אני אנסה לתת התייחסות עניינית כמיטב יכולתי, כנראה שלא תקבל תשובות מוחלטות.
קודם כל, לפני הצורך בהשוואה, אין לנו אמת מידה בכלל לדעת מה למדת בקורס ומה לא בכל מה שקשור ל-JAVA, האם זה היה קורס שיצאת ממנו מרוצה, ומרגיש שאתה יכול להתמודד עם אתגרים באנדרואיד או שזה קורס שהשאיר אותך עם חללים בהבנה של מרכיבי השפה שאתה מוצא את עצמך נתקל בקשיים ברגע שאתה צריך לעשות משהוא שלא נלמד בקורס?
הסיבה שאני מתמקד בכל זאת עוד במה כן למדת היא בגלל שלרוב במסגרות של קורסים מלמדים את המעט שהם צריכים כדי להקנות לסטודנט היכרות עם הנושא, כאשר במקרה זה הנושא הוא ממוקד על האנדרואיד, ואיך לעבוד "באנדרואיד" ולא ב"JAVA", ובתור מי שעשה בעצמו קורס ב-JAVA אני יודע כמה יש להשלים באופו עצמאי כדי להגיע להבנה בסיסית אפילו של הנושא הנלמד, ואפילו זה לא מכסה הכל.

בד"כ התהליך הוא הפוך, וטבעי יותר,שמתכנתים שיודעים JAVA ל"תוכנות ומערכות בPC" יעברו לאנדרואיד, פשוט בגלל שאנדרואיד חדש יותר ולהם כבר יש היכרות עם השפה. גם למפתח שיודע JAVA זה לא בדיוק עניין של יום להפנים את "דרכי האנדרואיד" לבצע דברים, אבל כאשר יש לך שליטה טובה ביסודות השפה פיתוח באנדרואיד הוא דיי קל ללמידה ומצריך בעיקר למידה של "צורת המחשבה" של האנדרואיד.

בתשובה לשאלתך מה גודל הפער, להערכתי, מדובר בפער של "קורס נוסף" , האם ה"קורס הנוסף" הזה יהיה לימודים עצמאיים בכוחות עצמך או במסגרת כלשהיא, זה תלוי בעצמך, אבל קיימים פערי "חומר לימוד" ובנוסף לכך מדובר בצורת עבודה שונה למדיי...תכנות לשרת לדוגמה הוא יותר "שקוף" כי אין UI, האמת אני מתקשה לתאר את ההבדלים כי לא נתקלתי בשאלה כזו בעבר, וזה דיי קשה להסביר למי שמצד אחד יודע JAVA אבל לא מכיר את התהליכים בעבודה אחרת חוץ מאנדרואיד, ומורגל לבקש רשות לכל פעולה בתהליך הפיתוח,לצורה מסויימת של עבודה עם UI ובעיקרון לאיזה סוג של "נוחות" מסויימת בכל הקשור לפיתוח. אני לא אומר שאי אפשר, אני אומר רק שלהערכתי את ה"סוויצ' " בראש יהיה יותר קשה לבצע במעבר מפיתוח לאנדרואיד.

מצטער, בסופו של דבר נכשלתי לענות לך על השאלה.
בכל מקרה, בהצלחה, ואם בכל זאת בחרת לצאת למסע מרתק זה, אשמח אם תעדכני אותנו בפורום, אוליי בכל זאת נוכל לסייע לך בדרכך.
 
למעלה